【问题标题】:Distinct() does not work properly with time stamps in SQLDistinct() 不能与 SQL 中的时间戳一起正常工作
【发布时间】:2021-05-05 10:01:48
【问题描述】:

如果我运行以下查询,我将有 2021-03-28 04:00:00 的重复项。如何避免这些重复?

SELECT distinct(ts) as date  FROM ( --(ts, '%Y-%m-%d %H:00:00') TO_CHAR(ts,'YYYY-MM-DD HH24:00:00')
                SELECT '2020-10-21'::TIMESTAMP AT TIME ZONE 'UTC'  AS tm
                UNION
                SELECT '2021-03-29'::TIMESTAMP AT TIME ZONE 'UTC'  AS tm
                ) AS t TIMESERIES ts AS '1 Hour' OVER (ORDER BY tm)

【问题讨论】:

  • distinctis not a function。它始终适用于 SELECT 列表的所有列。用括号括住其中一列不会改变任何内容
  • 更新了问题

标签: sql vertica


【解决方案1】:

我没有得到任何重复,否则这个查询会返回一些行:

SELECT ts,count(*) as occ FROM (
  SELECT ts FROM (
   SELECT '2020-10-21'::TIMESTAMP AT TIME ZONE 'UTC'  AS tm
   UNION
   SELECT '2021-03-29'::TIMESTAMP AT TIME ZONE 'UTC'  AS tm
  ) AS t 
  TIMESERIES ts AS '1 Hour' OVER (ORDER BY tm)
) b
GROUP BY 1 HAVING COUNT(*) > 1;
-- out  ts | occ 
-- out ----+-----
-- out (0 rows)

您的查询有何不同?

【讨论】:

    猜你喜欢
    • 2015-04-23
    • 2018-11-10
    • 2014-07-01
    • 1970-01-01
    • 2016-07-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多