Jan*_*ith 5 sql postgresql aggregate
我搜索了很多,但大多数解决方案都是串联选项,而不是我真正想要的。
我有一个表X(在 Postgres 数据库中):
anm_id anm_category anm_sales
1 a_dog 100
2 b_dog 50
3 c_dog 60
4 a_cat 70
5 b_cat 80
6 c_cat 40
Run Code Online (Sandbox Code Playgroud)
我想通过将 'a_dog'、'b_dog'、'c_dog' 分组为狗,将 'a_cat'、'b_cat'、'c_cat' 分组为猫来获得总销售额。
我无法更改表中的数据,因为它是外部数据库,我只能从中获取信息。
如何使用 SQL 查询来做到这一点?它不需要特定于 Postgres。
使用case语句将相同类别的动物分组在一起
SELECT CASE
WHEN anm_category LIKE '%dog' THEN 'Dogs'
WHEN anm_category LIKE '%cat' THEN 'cats'
ELSE 'Others'
END AS Animals_category,
Sum(anm_sales) AS total_sales
FROM yourtables
GROUP BY CASE
WHEN anm_category LIKE '%dog' THEN 'Dogs'
WHEN anm_category LIKE '%cat' THEN 'cats'
ELSE 'Others'
END
Run Code Online (Sandbox Code Playgroud)
此外,此查询应该适用于大多数数据库。