2015-05-28 2 views
1

У меня есть 2 таблицы в моей базе данных MySQL: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

Вам необходимо сделать UNION на двух отдельных предложениях GROUP BY для каждого датчика. Как

(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 
Смежные вопросы