Автор Тема: Результат голосования  (Прочитано 2550 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн FreeSpace

  • Штатный лодырь
  • Ветеран
  • *****
  • Сообщений: 613
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.infinity.com.ua
Результат голосования
« : 12 Марта 2004, 03:54:03 »
Помогите составить запрос для получения результатов голосования из таблицы с полями topic_id, variant_id.
Поля указывают на идентификатор обсуждения и идентификатор варианта ответа соответственно.
Хотелось бы получить результат вида
variant_id---percentage
Вот всё, что смог пока сделать, но работает этот запрос неправильно:
SELECT variant_id, ROUND(COUNT(variant_id) / COUNT(*)) * 100 FROM votes WHERE topic_id = GROUP BY variant_id
Закралось подозрение, что одним запросом этого не сделать и нужно сначала узнать общее количество голосов для нужного topic_id, но сначала решил у вас уточнить.
Программирование - это единственное искусство, которое способно воплотить столь уникальное сочетание эстетики и функциональности.

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
Результат голосования
« Ответ #1 : 12 Марта 2004, 10:50:32 »
FreeSpace
а может так поступить:
SELECT variant_id, COUNT(variant_id)  FROM votes WHERE topic_id = GROUP BY variant_id
получишь
variant_id - кол-во голосов
процент сможешь на стороне ПХП посчитать
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн FreeSpace

  • Штатный лодырь
  • Ветеран
  • *****
  • Сообщений: 613
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.infinity.com.ua
Результат голосования
« Ответ #2 : 12 Марта 2004, 19:54:43 »
Макс
Спасибо, такой вариант сработал отлично!
Программирование - это единственное искусство, которое способно воплотить столь уникальное сочетание эстетики и функциональности.

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28