Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL多年来的增长_Sql - Fatal编程技术网

SQL多年来的增长

SQL多年来的增长,sql,Sql,我有一个带有成员id的表,按时间连接方式连接,我正在试图找出如何找到年与年之间的增长百分比。 我有 选择YEARjoined作为JoinedYear,COUNTmember\u id作为Members 来自grp_成员 按年份分组加入 联合年度asc的订单; 这显示了每年加入的人数,但需要使用子查询帮助查找增长情况。快速web搜索将此示例显示为您的基础查询作为CTE,并在其上自行加入以获取上一年的值: 随着成长 像 选择YEARjoined作为JoinedYear,COUNTmember\u i

我有一个带有成员id的表,按时间连接方式连接,我正在试图找出如何找到年与年之间的增长百分比。 我有

选择YEARjoined作为JoinedYear,COUNTmember\u id作为Members 来自grp_成员 按年份分组加入 联合年度asc的订单;
这显示了每年加入的人数,但需要使用子查询帮助查找增长情况。

快速web搜索将此示例显示为您的基础查询作为CTE,并在其上自行加入以获取上一年的值:

随着成长 像 选择YEARjoined作为JoinedYear,COUNTmember\u id作为Members 来自grp_成员 按年份分组加入 联合年度asc订单 选择curYear.JoinedYear作为[Year],curYear.[Members] 从去年开始 curYear.JoinedYear=prevYear.JoinedYear+1上的上一年左连接增长 按curYear.joineddyear排序 在这里尝试一下:

年 成员 同比增长 2019 3. 0 2020 6. 3. 2021 9 3.
只需使用窗口功能:

SELECT YEAR(joined) AS JoinedYear,
       COUNT(*) AS Members,
       (-1 + COUNT(*) * 1.0 / LAG(COUNT(*)) OVER (ORDER BY YEAR(joined))) as growth_rate
FROM grp_member 
GROUP BY YEAR(joined) 
ORDER BY JoinedYear asc;  

你需要跟着小组走‌‌‌​​‌​‌‌​‌‌‌‌‌‌​​​‌​‌‌​‌‌‌‌ 操作人员GROUP_CONCAT版本在结果集中接收最后1个月的数据,因此,如果将表达式设为子查询,则可以对其求和,然后使用join获得最高外部组中的第一个值。

您确实应该指定预期的输出格式,并包含一些示例数据。如果您只是在标题上进行web搜索,则有许多此类查询的示例。请标记RDBMSUse百分比更改规则以确定增长。您可以创建自己的函数。前一年的差距为1