Есть ли способ использовать CASE, но не использовать MAX для получения значения, которое я хочу? Мой текущий запрос как этотКак не использовать MAX при использовании CASE
SELECT
ROUND(MAX(CASE WHEN id = '1' THEN value END),2) Val1,
ROUND(MAX(CASE WHEN id = '2' THEN value END),2) Val2,
ROUND(MAX(CASE WHEN id = '3' THEN value END),2) Val3
FROM table
WHERE id IN ("1", "2", "3") and
t_stamp BETWEEN "2014-10-25" AND "2014-10-25"
GROUP BY DATE(t_stamp), HOUR(t_stamp), MINUTE(t_stamp) DIV 15
Было бы замечательно, если я могу просто получить реальное значение для тех времен, а не значение MAX.
Я попытался удалить MAX, но все выходные стал NULL
SELECT
ROUND((CASE WHEN id = '1' THEN value END),2) Val1,
ROUND((CASE WHEN id = '2' THEN value END),2) Val2,
ROUND((CASE WHEN id = '3' THEN value END),2) Val3
FROM table
WHERE id IN ("1", "2", "3") and
t_stamp BETWEEN "2014-10-25" AND "2014-10-25"
GROUP BY DATE(t_stamp), HOUR(t_stamp), MINUTE(t_stamp) DIV 15
Как я могу это сделать? Спасибо за помощь в продвижении!
Я определенно не хочу использовать MAX, я думаю, что FIRST станет следующим выбором. Как мне это сделать? Просто измените MAX на FIRST? – sleepsleepsleep90731
Ну, я знал, что вы скажете, что MySQL не реализует FIRST. Это может помочь, если вы объясните, что на самом деле означают эти данные. Может быть, вы можете использовать GROUP_CONCAT для лучшего понимания ваших данных? –
да, я проверил group_concat, и я думаю, что просто буду использовать это. Но .. как я могу использовать его для запроса, который у меня уже есть? могу ли я просто изменить MAX на GROUP_CONCAT? – sleepsleepsleep90731