簡體   English   中英

在SQL Postgres中按組進行迭代

[英]Iterate over group by in SQL Postgres

從最終目標開始,我希望結果集如下所示:

name  | completed
_________________
Josh  |  T
Tom   |  T
Harry |  F

我有一張桌子,看起來像:

id | name | status
__________________
1    Josh   complete
2    Josh   errored
3    Tom    generating
4    Tom    complete
5    Harry  pending

從結果集中可以看到,我想讓每個人都知道自己是否有完整的狀態。 我想我要遍歷檢查條件status = 'complete' by子句分組的每一行,但是我很努力。

您可以進行聚合:

select name, coalesce(max(case when status = 'complete' then T end), 'F') as completed
from table t
group by name;

您可以使用bool_or聚合函數

SELECT name, bool_or(status = 'complete')
FROM test
GROUP BY name

產量

| name  | bool_or |
|-------+---------|
| Tom   | t       |
| Josh  | t       |
| Harry | f       |

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM