oracle 如何按当天分组并计算行数?

pgky5nke  于 2022-11-03  发布在  Oracle
关注(0)|答案(1)|浏览(187)

你好,我有表“os_txn.pay_link”,其中有许多列。我想做的是,我想通过查看“merchant_id”列来计算当天的行数。例如,我想查找的输出是,今天“merchant_id”中有一个有“8”行。因此,我想知道“merchant_id”列当天的行数。我想我应该用count(*)来查看select语句,但是语法上不成功。所以我愿意接受你的建议,谢谢。

bf1o4zei

bf1o4zei1#

如果我没理解错的话,一个简单的选择就是

select merchant_id, count(*)
from os_txn.pay_link 
where date_column = trunc(sysdate)
group by merchant_id;

假设date_column只包含日期(即,对于今天,2022年10月8日,这是它的值-没有小时、分钟或秒)。
如果日期列包含时间组件,同样-一个简单的选项-将是

select merchant_id, count(*)
from os_txn.pay_link
where trunc(date_column) = trunc(sysdate)
group by merchant_id;

如果date_column上有索引,那么这样的代码就不会使用它(除非它是基于函数的索引),所以您更愿意修改它以

where date_column >= trunc(sysdate)
  and date_column <  trunc(sysdate + 1)

如果不是这样,请发布样本数据和预期结果。

相关问题