gpt4 book ai didi

MySQL:从一组中找出特定的记录

转载 作者:太空宇宙 更新时间:2023-11-03 10:46:54 25 4
gpt4 key购买 nike

在customer表中,有customer_ID、name、sex、age、representative_id。我想为某个代表找出最年轻的男女顾客。

我用过

SELECT *,MIN(Age) FROM customer GROUP BY Rep_ID, sex;

但它返回每个组的第一条记录。如何在特定条件下从组中选择特定行?在这种情况下,其组的 age = min(age)。我应该使用加入吗?任何人都可以给我提示。提前谢谢你。

C_ID    Name        Sex Age Rep_ID
1 Person1 F 26 H3
2 Person2 M 40 H8
3 Person3 M 37 H5
4 Person4 F 51 H5
5 Person5 M 45 H5
6 Person6 F 37 H8
7 Person7 M 27 H8
8 Person8 M 36 H3
9 Person9 F 35 H5
10 Person10 M 30 H8
11 Person11 F 22 H3
12 Person12 F 28 H8
13 Person13 F 19 H3
14 Person14 M 41 H3
15 Person15 M 33 H5
16 Person16 F 34 H3
17 Person17 M 29 H8
18 Person18 F 50 H8

最佳答案

要解决这样的问题,您首先需要找到每个代表的最小男性/女性年龄。您可以使用 MIN() 函数并按性别和代表 ID 分组,如下所示:

SELECT rep_id, sex, MIN(AGE) AS youngestAge
FROM myTable
GROUP BY rep_id, sex;

一旦知道每个组中最小的年龄,就可以将该子查询连接回原始表以获取其余信息:

SELECT m.*
FROM myTable m
JOIN(
SELECT rep_id, sex, MIN(age) AS youngestAge
FROM myTable
GROUP BY rep_id, sex) tmp ON tmp.rep_id = m.rep_id AND tmp.sex = m.sex AND tmp.youngestAge = rep.age;

关于这方面的更多信息和类似的问题,您可以引用this页面。

关于MySQL:从一组中找出特定的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30382206/

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