我有一个包含以下列的表:bkng\ U日期bkng\ U id(varchar)别墅(varchar)此查询
select bkng_date,count(*) as cnt from tab_bkng_det group by bkng_date;
返回每个日期的记录数作为计数。现在我需要在这个查询的结果集中找到日期 where cnt = 2 .我尝试了几个子查询,但没有得到想要的结果。
where cnt = 2
mrzz3bfm1#
最简单、正确和安全的解决方案是添加 having count(*) = 2 正如戈登所说。为了完整性,如果您想知道如何使用子查询解决这个问题(您没有提供db供应商,但很可能您的供应商支持) having 条款),它将是:
having count(*) = 2
having
select x.bkng_date, x.cnt from ( select bkng_date,count(*) as cnt from tab_bkng_det group by bkng_date ) x where x.cnt = 2
或
with x as ( select bkng_date,count(*) as cnt from tab_bkng_det group by bkng_date ) select * from x where cnt = 2
oxcyiej72#
最好的选择是使用having子句,如下所示,
select bkng_date,count(*) as cnt from tab_bkng_det group by bkng_date having count(*) = 2
2条答案
按热度按时间mrzz3bfm1#
最简单、正确和安全的解决方案是添加
having count(*) = 2
正如戈登所说。为了完整性,如果您想知道如何使用子查询解决这个问题(您没有提供db供应商,但很可能您的供应商支持)
having
条款),它将是:或
oxcyiej72#
最好的选择是使用having子句,如下所示,