【问题标题】:TO_CHAR for date timefield, group by alters output日期时间字段的 TO_CHAR,按更改输出分组
【发布时间】:2019-10-01 15:41:35
【问题描述】:

我有一个 sql 查询,我在其中使用计数、大小写等,但是当我添加要返回的日期字段时,我的计数发生了变化,我不希望我的输出是那样的。你能提出一个更好的方法来解决这个问题吗?

Select A, b, C, D, (CASE when tablename.FIeldname when T then (count(tableName.Fieldname) - 1) ELSE 0 END) as TEST_1, 
       To_char(dateTimefield, 'DD-MON-YYYY')
from table name
where <<>>
group by A, B, C, D, tableName.field Name, date field

这改变了我在第 5 列中的计数,没有日期字段,我的输出就像我想要的那样 - 但我需要日期。

【问题讨论】:

  • 请包含您正在运行的实际查询/代码。您在问题中发布的内容甚至无法在 Oracle 上编译。

标签: sql oracle datetime count


【解决方案1】:

然后从group by 中删除日期。而是使用聚合函数:

Select A, b, C, D, (CASE when tablename.FIeldname when T then (count(tableName.Fieldname) - 1) ELSE 0 END) as TEST_1, 
       To_char(min(dateTimefield), 'DD-MON-YYYY')
from table name
where <<>>
group by A, B, C, D, tableName.field Name

【讨论】:

    猜你喜欢
    • 2014-05-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-23
    • 1970-01-01
    相关资源
    最近更新 更多