微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Oracle / SQL – 按日期随着时间的推移分组项目

嗨,我有一个“小部件”表,其中包含以下列:小部件,动作,时间戳.我们想要做的是将特定日期之前每天被拒绝的所有小部件拉多于一次.所以这里是一个示例表
widget      action      timestamp_
-------------------------------------------
type1       reject      2011-05-10 08:00:00
type1       reject      2011-05-10 09:00:00
type1       reject      2011-05-10 09:30:00
type2       reject      2011-05-11 09:30:00
type3       reject      2011-05-11 09:30:00
type1       reject      2011-05-11 09:30:00
type1       reject      2011-05-11 09:30:00
type2       reject      2011-05-12 10:30:00
type2       reject      2011-05-12 12:30:00
type3       reject      2011-05-12 12:30:00

所以我希望看到这两种礼貌之一的结果….

在x和y之间,有两个窗口小部件在一天内被多次拒绝

这会看到type1在一天被拒绝了一次,因为type2,所以计数是:2

要么

显示每个窗口小部件及其被拒绝的日期不止一次以及多少次.例..

widget      date            count
---------------------------------
type1       2011-05-10      3
type1       2011-05-11      2
type2       2011-05-12      2

这可能是首选输出…但是如何?

提前致谢!

这将给你的输出
SELECT Widget,to_char(timestamp_,'YYYY-MM-DD'),Count(Widget)
FROM Widget
WHERE timestamp_ BETWEEN to_date('YYYY-MM-DD HH24:MI:SS','%date1%') AND to_date('YYYY-MM-DD HH24:MI:SS','%date2%')
AND action LIKE 'reject'
GROUP BY Widget,'YYYY-MM-DD')
HAVING Count(Widget) > 1;

当然,您将要替换日期变量.

原文地址:https://www.jb51.cc/oracle/204943.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐