mysql - SQL - 通过添加新列返 repo 买的产品订单

标签 mysql sql

我正在处理另一个 SQL 查询。 我有下表。

购买

ID CUST_ID PROD_CODE PURCH_DATE
1  1       'WER'     01/12/2012 
2  2       'RRE'     02/10/2005
3  3       'RRY'     02/11/2011
4  3       'TTB'     15/05/2007
5  3       'GGD'     20/06/2016
6  2       'SSD'     02/10/2011

我正在尝试添加另一列 PURCH_COUNT,该列将显示基于 PURCH_DATE 的 CUST_ID 的购买计数。 如果这是第一次购买,它将返回 1,如果是第二次,则返回 2,依此类推。 所以我希望的结果是:

ID CUST_ID PROD_CODE PURCH_DATE  PURCH_COUNT
1  1       'WER'     01/12/2012  1
2  2       'RRE'     02/10/2005  1
3  3       'RRY'     02/11/2011  2
4  3       'TTB'     15/05/2007  1
5  3       'GGD'     20/06/2016  3
6  2       'SSD'     02/10/2011  2

提前致谢!

最佳答案

示例数据

DECLARE @Table1 TABLE 
    (ID int, CUST_ID int, PROD_CODE varchar(7), PURCH_DATE datetime)
;

INSERT INTO @Table1
    (ID, CUST_ID, PROD_CODE, PURCH_DATE)
VALUES
    (1, 1, 'WER', '2012-01-12 05:30:00'),
    (2, 2, 'RRE', '2005-02-10 05:30:00'),
    (3, 3, 'RRY', '2011-02-11 05:30:00'),
    (4, 3, 'TTB', '2008-03-05 05:30:00'),
    (5, 3, 'GGD', '2017-08-06 05:30:00'),
    (6, 2, 'SSD', '2011-02-10 05:30:00')
;

在 SQL 中:

select ID, 
CUST_ID, 
PROD_CODE, 
PURCH_DATE,
ROW_NUMBER()OVER(PARTITION BY CUST_ID ORDER BY (SELECT NULL))RN 
        from @Table1

在 MySql 中:

SELECT a.ID, a.CUST_ID,a.PROD_CODE,a.PURCH_DATE, (
    SELECT count(*) from @Table1 b where a.CUST_ID >= b.CUST_ID AND a.ID = b.ID
) AS row_number FROM @Table1 a

关于mysql - SQL - 通过添加新列返 repo 买的产品订单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37994950/

相关文章:

php - 将文本框(php)中的内容保存到 mySQL 中时没有任何反应

MYSQL 仅选择共享相同 y_id 的 x_id

sql - BigQuery UNNEST 无结果

sql - 在 .NET 中,将数据从 SQL 流式传输到文件

javascript - 如何使用javascript访问mysql?

mysql - SQL 中间表具有 column = max(column)

WHERE 中的 SQL SHA1

sql - 在 WHEN 子句中使用 > 时出现 CASE 语法错误

mysql - 在mysql中找到没有原始记录的重复记录

SQL 将 č、ć、ž 替换为字母 c、z