gpt4 book ai didi

SQL 创建带大小写的新结果列?

转载 作者:行者123 更新时间:2023-11-29 13:32:46 24 4
gpt4 key购买 nike

我有这个当前查询:

enter image description here

结果是:

enter image description here

我想获取所有这些“status_changes”并按天将它们分开,这样我就可以看到每天的状态变化,并在最后总结它们。它看起来像这样:

enter image description here

这可能吗?我的主要目标是使第 12 行“count(distinct driver_id) as status_changes”在一天中是唯一的,而不是在整个“spot_Check_begin”到“spot_check_end”时间范围内。

也许我错过了一个可能的不同查询的大图?

最佳答案

您可以使用 SUM 结合 CASE WHEN 而不是 COUNT。

例如:

SELECT 
sum(CASE WHEN created_at::DATE = CURRENT_DATE THEN 1 ELSE 0 END) as status_changes_1,
sum(CASE WHEN created_at::DATE = CURRENT_DATE - interval '1 day' THEN 1 ELSE 0 END) as status_changes_2,
sum(CASE WHEN created_at::DATE = CURRENT_DATE - interval '2 day' THEN 1 ELSE 0 END) as status_changes_3,
FROM

在开发版本中,我们可以使用具有聚合函数的 FILTER(http://www.postgresql.org/docs/devel/static/sql-expressions.html#SYNTAX-AGGREGATES)。希望我们能在不久的将来使用它。

count(driver_id) FILTER (WHERE created_at = CURRENT_DATE) AS status_changes_1

关于SQL 创建带大小写的新结果列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19849269/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com