我正在使用Oracle SQL。 以下是示例表:
MachineStatus
--------------
Machine Status date_time station
G1 1 07/09/2014 10:11 s1
G2 1 07/09/2014 10:11 s1
G3 0 07/09/2014 10:11 s1
G1 1 07/09/2014 10:12 s1
G2 1 07/09/2014 10:12 s1
G3 0 07/09/2014 10:12 s1
G1 0 07/09/2014 10:13 s1
G2 0 07/09/2014 10:13 s1
G3 0 07/09/2014 10:13 s1
如果有任何机器可用(如果状态为1),我想在任何给定的分钟列出该站的状态,如下所示。
Station status date_time
s1 1 07/09/2014 10:11
s1 1 07/09/2014 10:12
s1 0 07/09/2014 10:13
报告需要根据可用性每日/每周生成。
我该如何处理此查询?
答案 0 :(得分:0)
以下查询将为您提供示例的结果:
SELECT
station,
(CASE WHEN sum(status) > 1 THEN 1 ELSE 0 END) AS status,
date_time
FROM MachineStatus
GROUP BY station, date_time
ORDER BY date_time
至少有一个状态为1意味着该组和date_time的状态总和必须大于1.