gpt4 book ai didi

mysql - 如何在 SQL 中找到列的模式?

转载 作者:行者123 更新时间:2023-12-05 01:02:16 24 4
gpt4 key购买 nike

这是表格及其值:

CREATE TABLE Weapon(id INT,
Name VARCHAR(80),
Style VARCHAR(80));

Insert into Weapon values (1, 'Seismic Wand', 'Magic');
Insert into Weapon values (2, 'Nox Bow', 'Ranged');
Insert into Weapon values (3, 'Drygore', 'Melee');
Insert into Weapon values (4, 'Chaotic Staff', 'Magic');
Insert into Weapon values (5, 'Staff of Darkness', 'Magic');
Insert into Weapon values (6, 'Tetsu Katana', 'Melee');

这是我的查询尝试。

SELECT Name, Count(*) AS Style
FROM Weapon
GROUP BY Name
HAVING Count(*) >= ALL
(SELECT Count(*)
FROM Weapon
GROUP BY Name);

不显示模式,Style列重复次数最多的值。

results

如何让它显示模式?

最佳答案

更新:

针对@vkp 对多个Style 可能成为数据集模式的合理担忧,这里有一个更好的查询:

SELECT Style AS Mode, COUNT(*) AS Count 
FROM Weapon
GROUP BY Style
HAVING COUNT(*) >= ALL (SELECT COUNT(*) FROM Weapon GROUP BY Style);

这会产生:

<头>
模式 计数
魔法 3

这将返回数据集的模式,并将处理多个 Style 是模式的情况,而不需要对结果进行目视检查。

例如,构建原始表,

INSERT INTO Weapon 
VALUES (7, 'Rock', 'Melee');

(增加“近战”的数量,使其与“魔法”并列)

如果我们运行新的模式查找查询,我们会得到以下结果:

<头>
模式 计数
魔法 3
近战 3

我发布的原始答案(保留在下面)将在表格顶部生成模式,并要求用户选择他们需要的值。在我看来,这个新的解决方案效果更好。另外,我意识到最初我将“计数”列标记为“模式”,而数据集的模式实际上是样式(魔法、近战等)的 名称不是样式出现的次数。


原始答案:

对于Style列的模式,

SELECT Style, COUNT(*) AS Mode 
FROM Weapon
GROUP BY Style
ORDER BY COUNT(*) DESC;`

屈服:

<头>
风格 模式
魔法 3
近战 2
远程 1

模式将位于表格顶部。

感谢 http://www.xarg.org/2012/07/statistical-functions-in-mysql/

关于mysql - 如何在 SQL 中找到列的模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34229861/

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