【发布时间】:2021-07-09 10:49:01
【问题描述】:
我有以下疑问:
SELECT
time as "time",
case
when tag = 'KEB1.DB_BP.01.STATUS.SOC' THEN 'SOC'
when tag = 'KEB1.DB_BP.01.STATUS.SOH' THEN 'SOH'
end as "tag",
value as "value"
FROM metrics
WHERE
("time" BETWEEN '2021-07-02T10:39:47.266Z' AND '2021-07-09T10:39:47.266Z') AND
(container = '1234') AND
(tag = 'KEB1.DB_BP.01.STATUS.SOC' OR tag = 'KEB1.DB_BP.01.STATUS.SOH')
GROUP BY 1, 2, 3
ORDER BY time desc
LIMIT 2
这是给我的结果:
有时结果的顺序会从 SOH -> SOC 或从 SOC -> SOH 变化。我正在尝试修改我的查询,所以我总是先得到 SOH,然后再得到 SOC。我怎样才能做到这一点?
【问题讨论】:
-
查询有
GROUP BY子句但没有聚合函数的情况并不常见。您是否期望要删除的重复项?为此,我们宁愿使用SELECT DISTINCT。
标签: sql postgresql sql-order-by