IT

sql - 값을 그룹화하려면 어떻게 해야 합니까?

itgroup 2023. 7. 27. 21:54
반응형

sql - 값을 그룹화하려면 어떻게 해야 합니까?

다음과 같이 테이블을 준비했습니다.

> SELECT * FROM tempLog WHERE DATE(ts) = CURDATE() LIMIT 9;

+-------+---------------------+----------+-------+-------+
| id    | ts                  | sensorid | value | event |
+-------+---------------------+----------+-------+-------+
| 11020 | 2017-12-15 00:00:01 |        3 |  18.1 | cron  |
| 11021 | 2017-12-15 00:00:01 |        4 |  14.8 | cron  |
| 11022 | 2017-12-15 00:00:01 |        5 |   1.3 | cron  |
| 11023 | 2017-12-15 00:02:02 |        3 |  18.1 | cron  |
| 11024 | 2017-12-15 00:02:02 |        4 |  14.8 | cron  |
| 11025 | 2017-12-15 00:02:02 |        5 |   1.3 | cron  |
+-------+---------------------+----------+-------+-------+

쿼리를 구성하여 얻을 수 있습니까?

+---------------------+---------+---------+---------+
| ts                  | sensor3 | sensor4 | sensor5 |
+---------------------+---------+---------+---------+
| 2017-12-15 00:00:01 |   18.1  |   14.8  |  1.3    |
| 2017-12-15 00:02:02 |   18.1  |   14.8  |  1.3    |
+---------------------+---------+---------+---------+

즉, 모든 다른 '타임 스탬프'를 선택하고 해당 시점의 다른 센서에서 각 값을 가져옵니다.

센서는 나중에 더 많이 나올 것이기 때문에, 저는 그것을 고려해야 할 것입니다.모두 동일한 '타임 스탬프'로 폴링됩니다.

감사합니다/존

select ts, 
       max(case when sensorid = 3 then value else 0 end) as sensor3,
       max(case when sensorid = 4 then value else 0 end) as sensor4,
       max(case when sensorid = 5 then value else 0 end) as sensor5
from your_table
group by ts

언급URL : https://stackoverflow.com/questions/47838086/sql-how-do-i-group-values

반응형