gpt4 book ai didi

MySQL:在列值中使用聚合函数

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

给定 MySQL 模式中的一个表,其格式类似于:人名 |创建日期示例数据:

p1 | 08-12-1995
p2 | 04-11-2002
p3 | 12-31-2007
...

我很难理解执行以下功能的语法:1.我想根据创建日期统计人数例如,我想创建一个按年份分组的表,并且有一个支持列,其中包含该年内创建的所有人员的计数。2. 使用聚合函数,该函数将能够根据新的 GROUPED BY 表计算两年值之间的增量即

 Year | # of people | Delta
1995 | 20 |
1996 | 22 | +10%
1997 | 18 | -18%
...

我是 MySQL 新手,语法仍然让我困惑。我不知道创建一个基于年份的新表 GROUP 是否是解决该解决方案的最有效的解决方案,并且我不确定如何将表中的增量计算到我自己的表中。

最佳答案

类似的东西应该可以工作,但请注意不要更改结果列的顺序(它们非正式地从左到右评估)。

SET @lastCount := null;
SELECT creationYear AS `Year`
, IF(@lastCount IS NULL
, ''
, CONCAT(ROUND(100*((pCount/@lastCount)-1), 0), '%')
) AS `Delta`
, @lastCount := pCount AS `# of people`
FROM (
SELECT YEAR(creation_date) AS creationYear, COUNT(1) AS pCount
FROM theTable
GROUP BY creationYear
ORDER BY creationYear
) AS subQ

关于MySQL:在列值中使用聚合函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31975365/

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