我想计算当天唯一CNTR_NBR
的数量
SELECT TO_CHAR(BEGIN_DATE, 'DD-MM-YYYY') "DATE"
, TRAN_TYPE_DESC
, MENU_OPTN_NAME
, REASON_CODE
, REF_FIELD_3 "RC_REF_1"
, COUNT (DISTINCT CNTR_NBR) AS LPNS
FROM WMS2018.BAP_PROD_TRKG_TRAN_VIEW
WHERE MENU_OPTN_NAME = 'Receive and Sort DCV'
AND TRUNC(BEGIN_DATE) = TRUNC(SYSDATE)
GROUP BY BEGIN_DATE
, TRAN_TYPE_DESC
, MENU_OPTN_NAME
, REASON_CODE
, REF_FIELD_3
ORDER BY 1
;
这是它当前返回的
1条答案
按热度按时间pdsfdshx1#
在Oracle中,
DATE
是一种二进制数据类型,由7个字节组成,代表世纪、世纪年、月、日、小时、分钟和秒。它总是具有这些组件。有些用户界面选择了默认值,即不显示
DATE
s的时间部分,而SQL Developer恰好就是这样。您可以在首选项中或使用以下命令更改日期格式:然后您将看到每个组中的完整日期和时间。
当您使用
GROUP BY begin_date
时,您要求它分组到精确到一秒(而不是一天);您需要更改它,以便组跨越一整天。您可以在
GROUP BY
子句中使用TO_CHAR
或TRUNC
来按日期分组:或: