gpt4 book ai didi

sql - Postgres 中的多表 count()

转载 作者:行者123 更新时间:2023-12-02 16:46:36 25 4
gpt4 key购买 nike

我有一个表events,其中包含idvenue 列。

events.venue 列与 venues.id 列匹配,这是一个相当典型且简单的设置。

一些 field “损坏”,因为它们缺少关键信息,例如geo_lat。我正在尝试创建损坏 field 的优先级列表,将举办最多事件 field 放在顶部,以便我们知道哪些 field code> 是最需要修复的。

Myquery 到目前为止看起来像;

select x.venue_id as id, count(x.venue_id) as events 
from (
select *
from events e, venues v
where e.venue=v.id and v.geo_lat is null
group by e.venue
) as x order by events desc

这给出了错误:错误:列“e.id”必须出现在 GROUP BY 子句中或在聚合函数中使用

我想要实现的输出看起来像这样;

venue.id | events
---------|-------
12 | 219
214 | 141
36 | 41
1834 | 22
931 | 4

仅包含破损 field 。这样,我就知道修复 field 12 是重中之重,依此类推。

最佳答案

SELECT
venue.id,
COUNT(events.venue) AS event_count
FROM
venues
LEFT JOIN
events
ON events.venue = venue.id
WHERE
venue.geo_lat IS NULL
GROUP BY
venue.id
ORDER BY
COUNT(events.venue) DESC

LEFT JOIN 允许没有事件的 field 。 (INNER JOIN 会将它们过滤掉。)

关于sql - Postgres 中的多表 count(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12914200/

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