【发布时间】:2021-12-25 20:09:54
【问题描述】:
SQL 菜鸟,试图通过唯一名称分组获得一些帮助,提供计数,仅筛选 2021 年的开始日期。这就是我到目前为止所拥有的,也是我迷路的原因。
我的表:
| name | start |
|----------|---------------------------------|
| Michigan | 01-JAN-21 01.00.00.000000000 AM |
| State | 01-JAN-20 01.00.00.000000000 AM |
| State | 01-JAN-21 01.00.00.000000000 AM |
| State | 01-FEB-21 01.00.00.000000000 AM |
| Indiana | 01-FEB-21 01.00.00.000000000 AM |
| Michigan | 01-FEB-21 01.00.00.000000000 AM |
| State | 01-MAR-21 01.00.00.000000000 AM |
尝试获取名称的计数,仅针对 2021 年开始日期进行过滤。这就是我希望我的输出的样子:
| name | Count |
|----------|-------|
| Michigan | 2 |
| State | 3 |
| Indiana | 1 |
我的代码:
select name, count(name) from my_table
group by name, start
having start >= '01-JAN-21 01.00.00.000000000 AM'
但这会重复名称(由于唯一的开始日期)并且不提供汇总计数。我无法通过“开始”删除组,因为这会在 SQL 中输出错误。所以我不确定如何达到我希望输出的样子。非常感谢一些指导。
【问题讨论】:
-
参考这个db<>fiddle
标签: sql date filter group-by count