gpt4 book ai didi

MySQL5.1 两个查询我无法工作

转载 作者:行者123 更新时间:2023-11-30 23:25:13 25 4
gpt4 key购买 nike

我需要帮助的第一个查询 - 我有一个名为 Stadium 的表,其中包含有关不同体育场的信息。每天可以在某个体育场进行不止一场比赛。 Stadium.Number指的是Stadium的编号,Stadium.Date指的是比赛日期。我需要查询列出每个 Stadium.Number,以及举行最多比赛的日期。

我真的不擅长写查询,所以这就是我目前的全部:

SELECT Number, count(Date)
FROM Stadium
ORDER BY Stadium.Number, Stadium.Date

第二个查询 -我需要列出与去年 1 月 (2011-01) 相比,今年 1 月 (2012-01) 至少增加 25% 比赛的 Stadium.Date 指的是比赛日期。

感谢大家的帮助!

最佳答案

我真的认为你应该规范化你的数据库模式,这样查询就很容易解决。

例如 - 我认为 Stadium 和 Game 应该是 2 个单独的表,具有一对多链接。 (如果一场比赛可以跨越不同的体育场,甚至可以是多对多)。

但是对于你的例子:

SELECT s.Number AS Stadium, s.[Date], COUNT(s.[Date]) AS 'Count'
FROM Stadium s
GROUP BY s.Number, s.[Date]
ORDER BY s.Number, COUNT(s.[Date]) DESC

假设 Stadium 表上有一个 Id,这将用于您的第二个查询 - 但不确定是否有更有效的方法。

SELECT s.Number AS Stadium,
COUNT(y1.[Date]) AS Year1Count,
COUNT(y2.[Date]) AS Year2Count,
COUNT(y1.[Date]) / COUNT(y2.[Date]) * 100 AS Growth
FROM Stadium s
LEFT OUTER JOIN Stadium y1 ON s.Id = y1.Id AND y1.[Date] BETWEEN '2011-01-01 00:00:00' AND '2011-12-31 23:59:59'
LEFT OUTER JOIN Stadium y2 ON s.Id = y2.Id AND y2.[Date] BETWEEN '2012-01-01 00:00:00' AND '2012-12-31 23:59:59'
GROUP BY s.Number
HAVING COUNT(y1.[Date]) / COUNT(y2.[Date]) * 100 > 25

关于MySQL5.1 两个查询我无法工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13672305/

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