gpt4 book ai didi

mysql - 计算两列并显示满足条件的总数

转载 作者:行者123 更新时间:2023-11-29 03:39:23 26 4
gpt4 key购买 nike

我已经看到这个问题在这里和其他地方被问到并得到了回答,但仍然无法得到我想要的结果。所以,请原谅重复。

我想返回一个表格,显示玩家(两列玩家)赢得一场比赛的次数(名为 place 的列中有一个 1)。

我的查询是:

SELECT `player1` as Winner, Count( * ) AS Count
FROM scores
WHERE `place` =1
UNION ALL
SELECT `player2` as Winner, Count( * ) AS Count
FROM scores
WHERE `place` =1
ORDER BY count DESC

表结构为:

player1 varchar
player2 varchar
place smallint
Other unrelated columns

我想要这样的回复:

Winner     Count
Joe 5
Sam 4
Bill 3

列标签对我来说并不重要,因为我会抓取结果并将其放在网页上。

phpadmin 在我的查询中报告错误,而 Instant SQLformatter ( http://www.dpriver.com/pp/sqlformat.htm?ref=g_wangz ) 似乎说查询正常(格式化查询而不是显示错误)。

那么,我做错了什么?

最佳答案

我会将查询稍微更改为以下内容。此查询将您的 player1player2 列转换为包含多行的单个列,然后您可以应用计数:

select Winner,
count(*) Total
from
(
SELECT `player1` as Winner
FROM scores
WHERE `place` =1
UNION ALL
SELECT `player2` as Winner
FROM scores
WHERE `place` =1
) src
group by winner
order by total desc;

参见 SQL Fiddle with Demo

关于mysql - 计算两列并显示满足条件的总数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16317492/

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