2015-05-28 170 views
1

多个计数组我有我的MySQL数据库2个表:SQL查询:按日期

Table Sensor 
_id Name 
1  Sensor1 
2  Sensor2 

Table History 
_id Sensor_fk Date 
1  1   2015-05-24 
2  2   2015-05-27 
3  1   2015-05-28 
4  1   2015-05-28 
5  2   2015-05-28 
... 

我需要一个查询返回这样的事:

Date   Sensor1 Sensor2 
2015-05-24 1   0 
2015-05-27 0   1 
2015-05-28 2   1 

是的计数我2个传感器按日期分组。我将用这些数据填充条形图。 有人可以帮助我吗?

回答

0

您需要为每个传感器的两个单独的GROUP BY子句执行UNION。像

(Select count(*) as Sensor1 from History h 
    where h.Sensor_FK = 1 
    group by DateField 
) 

Union 

(Select Count(*) as Sensor2 from History h 
    whre h.Sensor_FK = 2 
    group by DateField 
    ) 
+0

谢谢你的帮助。它不工作。我想我必须使用PIVOT将我的Sensor1和Sensor2转换为查询的列。但我不知道如何 – aseolin

0

我明白了。

SELECT h.date as Date, 
count(CASE WHEN h.sensor_fk = 1 THEN h.sensor_fk END) as 'Sensor1', 
count(CASE WHEN h.sensor_fk = 2 THEN h.sensor_fk END) as 'Sensor2' 
FROM history h 
GROUP BY Date