首页 > 解决方案 > 具有大于和小于 Sybase DB 的计数条件

问题描述

我在 sybase db 中使用以下查询,我需要数据来显示 count(Field1 >=2 和 Field1 <=5) Select * FROM Table1 WHERE Field1 IN( SELECT Field1 FROM Table1 GROUP BY Field1 HAVING COUNT(Field1) >= 2 ORDER BY Field1我怎样才能做到这一点

标签: sqldatabasesybase

解决方案


你基本上在那里:

Select *
FROM Table1
WHERE Field1 IN (SELECT Field1
                 FROM Table1
                 GROUP BY Field1
                 HAVING COUNT(Field1) BETWEEN 2 AND 5
                )
ORDER BY Field1;

但是,我建议使用窗口函数:

select t1.*
from (select t1.*, count(*) over (partition by field1) as cnt
      from table1 t1
     ) t1
where t1.cnt between 2 and 5;

推荐阅读