Я хотел бы запросить базу данных по нескольким переменным с разными типами данных.Запрос MySQL с несколькими условиями без WHERE
Мой запрос выглядит следующим образом:
SELECT var1, var2,
SUM(CASE WHEN var3 ='2008' AND var4='A1_U18' THEN var5 ELSE 0 END) AS 'A1_U18_7',
SUM(CASE WHEN var3='2015' AND var4='A1_U18' THEN var5 ELSE 0 END) AS 'A34_U15_0',
CASE WHEN var3 = '2015' AND var4 = 'A0_RISE' THEN var5 ELSE 0 END AS 'A0_RISE'
FROM dataset1
GROUP BY var1
На самом деле мне не нужно, чтобы суммировать результат первых двух запросов, но в противном случае я бы получил «0» в качестве выходного сигнала. С суммой я получил правильный ответ.
Однако это обходное решение нецелесообразно в случае с «A0_RISE», поскольку тип данных является текстом. Без функции SUM я тоже получил вывод «0».
Как я могу получить выход для всех переменных? Если у вас есть идея лучше, чем SUM-обходной путь для парных, я был бы очень признателен здесь за это!
Общее правило GROUP BY гласит: Если указано предложение GROUP BY, каждая ссылка на столбец в списке SELECT должна либо идентифицировать столбец группировки, либо быть аргументом функции набора! – jarlh
Не очень хорошее решение, очень уродливое на самом деле, но вы можете использовать MAX вместо SUM, в случае, если всегда есть только одно значение, которое вы хотите вернуть – Johan
Опубликовать некоторые примеры данных с ожидаемым результатом – Madhivanan