gpt4 book ai didi

仅限制记录子集的 SQL 查询

转载 作者:行者123 更新时间:2023-11-29 12:38:44 24 4
gpt4 key购买 nike

假设我有一张人员表,其中包含行 namegender (M/F)age

返回的 SQL 查询看起来像什么:

  • 所有女性
  • 最多 5 名男性
  • 按年龄排序

注意。这是一个人为的例子。此外,欢迎提供特定于 Postgres 的答案。

最佳答案

SELECT name, gender, age
FROM ( SELECT name, gender, age
FROM people
WHERE gender = 'F'
UNION ALL
( SELECT name, gender, age
FROM people
WHERE gender = 'M'
LIMIT 5
)
) x
ORDER BY age

请注意,上述解决方案不会选择任何特定的男性。如果需要,请对 male 子查询应用排序。

这个在修剪发生之前按年龄对雄性进行排序:

SELECT name, gender, age
FROM ( SELECT name, gender, age
,ROW_NUMBER() OVER (PARTITION BY gender ORDER BY age) gender_count
FROM people
) x
WHERE gender = 'F'
OR gender_count <= 5

顺便说一句,我发现“性别”通常用于语法引用。在这种情况下,“性”将是我使用的术语。

关于仅限制记录子集的 SQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10694828/

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