gpt4 book ai didi

mysql - 如何通过按小节计算*每个*组来找到家庭破坏者?

转载 作者:可可西里 更新时间:2023-11-01 08:37:00 25 4
gpt4 key购买 nike

假设我有一张(大部分)忠实夫妻的表格。这对夫妇多次出现在同一张 table 上。

你可以看出谁是忠实的,因为 jack 总是和黛安在一起,弗雷德总是和金杰在一起,等等。

但是,汤姆、迪克和哈利都在和毁家小姐约会。像这样:

Fred        Ginger
Fred Ginger
Fred Ginger
Jack Dianne
Jack Dianne
Tom Homewrecker
Dick Homewrecker
Harry Homewrecker
Bogie Bacall
Heathcliff Catherine
Heathcliff Catherine
Heathcliff Catherine
Heathcliff Catherine
Adam Steve
Adam Steve

我可以从 Y 列 GROUPing 开始:

select X, Y from couples group by Y

产生:

X           Y
Fred Ginger
Jack Dianne
Tom Homewrecker
Dick Homewrecker
Harry Homewrecker
Bogie Bacall
Heathcliff Catherine
Adam Steve

但是,我想获得第三列,显示每个 Y 拥有的不同合作伙伴的总数。

这样一来,忠诚的夫妻就会表现得一如既往只有一个伴侣。

您可以发现家庭破坏者,因为他们有 > 1 个伙伴。

X            Y           Count  
Fred Ginger 1
Jack Dianne 1
Tom Homewrecker 3 <--- THERE'S the b***h!!!
Dick Homewrecker 3 <--- THERE'S the b***h!!!
Harry Homewrecker 3 <--- THERE'S the b***h!!!
Bogie Bacall 1
Heathcliff Catherine 1
Adam Steve 1

肯定有一些我真的不明白的地方,因为我一直在尝试 SELECT、DISTINCT、GROUP BY、ROLLUP、COUNT 等等的每一种组合,直到失明。

最佳答案

为什么您认为只有 Y 可以有几个约会对象而 X 不能? :))无论如何,快速(不是查询的执行时间,而是思考问题的时间))查询(不是我上面所说的最好的查询):

SELECT DISTINCT t.X, t.Y, ttt.cnt FROM 
couples t,
(SELECT Y, COUNT(*) cnt FROM
(SELECT DISTINCT X, Y FROM couples) tt GROUP BY Y) ttt
WHERE t.Y=ttt.Y

关于mysql - 如何通过按小节计算*每个*组来找到家庭破坏者?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9235729/

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