gpt4 book ai didi

sql - 简单的 psql 计数查询

转载 作者:行者123 更新时间:2023-11-29 13:33:57 25 4
gpt4 key购买 nike

我是 postgresql 的新手,想从我们的表中生成一些摘要数据

我们有一个简单的留言板 - 表名 messages,它有一个元素 ctg_uid。每个 ctg_uid 对应于表 categories 中的一个类别名称。

这是类别select * from categories ORDER by ctg_uid ASC;

 ctg_uid |    ctg_category    | ctg_creator_uid 
---------+--------------------+-----------------
1 | general | 1
2 | faults | 1
3 | computing | 1
4 | teaching | 2
5 | QIS-FEEDBACK | 3
6 | QIS-PHYS-FEEDBACK | 3
7 | SOP-?-CHANGE | 3
8 | agenda items | 7
10 | Acq & Process | 2
12 | physics-jobs | 3
13 | Tech meeting items | 12
16 | incident-forms | 3
17 | ERRORS | 3
19 | Files | 10
21 | QIS-CAR | 3
22 | doses | 4
24 | admin | 3
25 | audit | 3
26 | For Sale | 4
31 | URGENT-REPORTS | 4
34 | dt-jobs | 3
35 | JOBS | 3
36 | IN-PATIENTS | 4
37 | Ordering | 4
38 | dep-meetings | 4
39 | reporting | 4

我想做的是对我们messages中的所有消息计算每个类别的频率

我可以按类别进行SELECT count(msg_ctg_uid) FROM messages where msg_ctg_uid='13';

但是有可能在一个类轮中做到这一点吗?

下面给出了每条消息的类别和ctg_uidSELECT ctg_category, msg_ctg_uid FROM messages INNER JOIN categories ON (ctg_uid = msg_ctg_uid);

但是 SELECT ctg_category, count(msg_ctg_uid) FROM messages INNER JOIN categories ON (ctg_uid = msg_ctg_uid);

给我错误 ERROR: column "categories.ctg_category"must appear in the GROUP BY clause or be used in an aggregate function

如何汇总每个类别的频率?

最佳答案

您缺少 group by 子句:

SELECT ctg_category, count(msg_ctg_uid) 
FROM messages INNER JOIN categories ON (ctg_uid = msg_ctg_uid);
GROUP BY ctg_category

这意味着您需要每个 ctg_category

的计数

关于sql - 简单的 psql 计数查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17703506/

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