gpt4 book ai didi

SQL查找行的总和并返回键的计数

转载 作者:搜寻专家 更新时间:2023-10-30 22:24:39 25 4
gpt4 key购买 nike

对于看起来像这样的数据库表:

id  | year | stint | sv
----+------+-------+---
mk1 | 2001 | 1 | 30
mk1 | 2001 | 2 | 20
ml0 | 1999 | 1 | 43
ml0 | 2000 | 1 | 44
hj2 | 1993 | 1 | 70

我想得到以下输出:

 count
-------
3

条件是计算大于 1994 年的 sv > 40 的 id 的数量。如果同一年有多个 stint,则添加 sv 点并查看是否 > 40。

这是我到目前为止写的,但显然是不对的:

SELECT COUNT(DISTINCT id),
SUM(sv) as SV
FROM public.pitching
WHERE (year > 1994 AND sv >40);

我知道语法完全错误,并且缺少一些条件信息,但我对 SQL 不够熟悉,不知道如何正确地对同一个表中的两行进行条件求和 (也许有一个子查询?)。任何帮助,将不胜感激! (使用 postgres)

最佳答案

您可以使用嵌套查询来获取聚合,并将其包装起来以获取计数。请注意,总和的条件必须在 having 子句中:

SELECT COUNT(id)
FROM (
SELECT id,
year,
SUM(sv) as SV
FROM public.pitching
WHERE year > 1994
GROUP BY id,
year
HAVING SUM(sv) > 40 ) years

如果一个 id 应该只计算一次,即使它满足条件超过一年,那么做 COUNT(distinct id) 而不是 COUNT(id )

关于SQL查找行的总和并返回键的计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54966231/

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