获得正确的计数 SQL
Getting correct count SQL
我有一个查询,我只需要 return 结果,其中事件在同一日期同一 model/serial 号码发生不止一次 - 在此查询中,只要特定 function 和 eventdetails 参数在一天内出现不止一次。这是查询 -
SELECT DISTINCT store, tintermodel, tinterserial, eventdetails, trunc(datetime)
FROM tinter_events
WHERE tintermodel = 'FM 8000DE'
AND (datetime >= to_timestamp('2017-05-01', 'YYYY-MM-DD')
AND datetime < to_timestamp('2017-08-31', 'YYYY-MM-DD'))
AND function = 'Set Colorant Level'
AND eventdetails = 'B1[550]'
GROUP BY store, tintermodel, tinterserial, eventdetails, trunc(datetime)
ORDER BY store, SUBSTR(eventdetails,1,2), trunc(datetime);
会不会像在 GROUP BY 短语的末尾添加一个 HAVING COUNT(*) > 1 一样简单?
通过查看每个模型每个日期的计数来检查它,从那里你会知道哪些记录应该只显示在你的查询中
SELECT trunc(datetime),
tintermodel,
COUNT(*)
FROM tinter_events
WHERE tintermodel = 'FM 8000DE'
AND function = 'Set Colorant Level'
AND eventdetails = 'B1[550]
GROUP BY trunc(datetime),
tintermodel
ORDER BY trunc(datetime)
我有一个查询,我只需要 return 结果,其中事件在同一日期同一 model/serial 号码发生不止一次 - 在此查询中,只要特定 function 和 eventdetails 参数在一天内出现不止一次。这是查询 -
SELECT DISTINCT store, tintermodel, tinterserial, eventdetails, trunc(datetime)
FROM tinter_events
WHERE tintermodel = 'FM 8000DE'
AND (datetime >= to_timestamp('2017-05-01', 'YYYY-MM-DD')
AND datetime < to_timestamp('2017-08-31', 'YYYY-MM-DD'))
AND function = 'Set Colorant Level'
AND eventdetails = 'B1[550]'
GROUP BY store, tintermodel, tinterserial, eventdetails, trunc(datetime)
ORDER BY store, SUBSTR(eventdetails,1,2), trunc(datetime);
会不会像在 GROUP BY 短语的末尾添加一个 HAVING COUNT(*) > 1 一样简单?
通过查看每个模型每个日期的计数来检查它,从那里你会知道哪些记录应该只显示在你的查询中
SELECT trunc(datetime),
tintermodel,
COUNT(*)
FROM tinter_events
WHERE tintermodel = 'FM 8000DE'
AND function = 'Set Colorant Level'
AND eventdetails = 'B1[550]
GROUP BY trunc(datetime),
tintermodel
ORDER BY trunc(datetime)