gpt4 book ai didi

sql - 如何使用postgresql按自定义计数排序?

转载 作者:行者123 更新时间:2023-11-29 14:24:43 26 4
gpt4 key购买 nike

我有两个表:

公司:(id,名称)

worker :(id,姓名,国家)

我想获取所有公司并按给定国家/地区的员工数量对它们进行排序。

对于寻找拥有更多美国 worker 的公司的查询,结果应为:

#workers from USA | company id | company name 
----------------------------------------------
90 6 foo corp
45 9 bar corp
0 3 foobar corp

我试过:

select 
count(w.country='USA') as mycount,
w.company_id,
c.company_name
from
companies c
left join workers w on
c.id=w.company_id
group by
w.company_id,
c.company_name
order by mycount desc;

但这计算的是所有 worker ,无论他们来自哪个国家/地区。

有什么想法吗?

最佳答案

您可以使用相关子查询轻松做到这一点:

SELECT
(SELECT count(*) FROM workers w WHERE w.company_id=c.id AND w.country='USA') AS mycount,
c.id,
c.company_name
FROM
companies c
ORDER BY mycount DESC

关于sql - 如何使用postgresql按自定义计数排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1403456/

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