С MySQL, как посчитать участников, которые находятся в опции, а не в другой? - PullRequest
0 голосов
/ 02 декабря 2011

Я хотел бы отобразить некоторые данные таблицы-члена.

Моя таблица выглядит следующим образом (извлечение структуры таблицы):

id_member | city_member | option1  | no option 2
-----------------------------------------------
   1      |   Paris     |    1     |    0
. . . . . . . . . . . . . . . . . . . . . . . .
   2      |   Berlin    |    1     |    0
. . . . . . . . . . . . . . . . . . . . . . . .
   3      |   Berlin    |    0     |    1

Вот пример ожидаемого результата(после запроса sql):

city_member | members | option1  | non_option2
-----------------------------------------------
   Paris    |   200   |    150   |   47
. . . . . . . . . . . . . . . . . . . . . . . .
   London   |   325   |    286   |   189
. . . . . . . . . . . . . . . . . . . . . . . .
   Berlin   |   124   |    110   |   12

Объяснение: В Париже проживают 200 членов.Среди них 150 выбрали вариант 1. Среди участников, которые выбрали вариант 1 и живут в Париже, 47 из них не выбрали вариант 2.

Я пробовал этот запрос, но он работает только дляпервые три столбца.Мне нужна помощь, чтобы найти, как это сделать для четвертого.

SELECT city_member, 
    COUNT(id_member) AS members, 
    SUM(option1) AS option1, 
    SUM(option1 - option2) AS non_option2
FROM my_table
GROUP by city_member

Как сделать что-то вроде "Член COUNT, ГДЕ option2 = '0' И КТО ВХОДИТ в option1, КАК non_option2"?

Ответы [ 2 ]

4 голосов
/ 02 декабря 2011

без mysql атма: я просто догадываюсь:

SELECT city_member, 
COUNT(id_member) AS members, 
SUM(option1) AS option1, 
SUM(CASE WHEN option1 = '1' AND option2 = '0' THEN 1 ELSE 0 END) AS non_option2
FROM my_table
GROUP by city_member

редактировать: исправлено SQL

2 голосов
/ 02 декабря 2011
SELECT 
    city_member, 
    COUNT(*) AS members, 
    SUM(option1) AS option1, 
    SUM(option1 * option2) AS option1_and_2,
    SUM(option1 * (1-option2)) AS option1_and_non_option2
FROM my_table
GROUP by city_member
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...