【问题标题】:Getting correct count SQL获取正确的计数 SQL
【发布时间】:2017-09-13 17:33:08
【问题描述】:

我有一个查询,我需要它只返回事件在同一日期在同一型号/序列号上发生多次的结果 - 在此查询中,只要特定 函数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 一样简单?

【问题讨论】:

  • 你尝试的时候发生了什么?
  • 我的问题是我不确定这是否返回了我想要的(查询每次运行需要 15 分钟。

标签: sql count having


【解决方案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)

【讨论】:

  • 谢谢 - 稍微修改过的版本可以满足我的需要!
猜你喜欢
  • 2014-08-27
  • 2016-12-28
  • 2019-08-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多