gpt4 book ai didi

MySQL 选择每年只计算新 ID

转载 作者:行者123 更新时间:2023-12-01 00:35:04 25 4
gpt4 key购买 nike

我有一个像这样的 MySQL 表

    id   |   client_id   |    date
--------------------------------------
1 | 12 | 02/02/2008
2 | 15 | 12/06/2008
3 | 23 | 11/12/2008
4 | 12 | 18/01/2009
5 | 12 | 03/03/2009
6 | 18 | 02/07/2009
7 | 23 | 08/09/2010
8 | 18 | 02/10/2010
9 | 21 | 30/11/2010

我想做的是获取每年的新客户数量。 2008年有3个新客户(12,15,23),2009年有1个新客户(18),2010年有1个新客户(21)。

到目前为止,我的这个查询为我提供了每年的不同客户,即 2008 年 3 个、2009 年 2 个和 2010 年 3 个。

 SELECT COUNT(DISTINCT client_id) FROM table GROUP BY YEAR(date) 

任何帮助将不胜感激..

最佳答案

您可以使用子查询获取按 client_id 分组的每个 client_id 的第一年,然后计算按以下分组的 client_id 的出现次数年,所以:

SELECT COUNT(client_id), YEAR_MIN FROM (
SELECT client_id, MIN(YEAR(date)) AS YEAR_MIN
FROM table
GROUP BY client_id) AS T
GROUP BY YEAR_MIN

SQL Fiddle here

关于MySQL 选择每年只计算新 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54910184/

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