gpt4 book ai didi

mysql - ( 附近的语法错误

转载 作者:行者123 更新时间:2023-11-29 06:14:35 24 4
gpt4 key购买 nike

我正在尝试查询一些东西,但我对 Mysql 不是很好,所以我想知道是否有人可以告诉我这里的问题是什么。这是我的表格:

 create table #transfers (
sender varchar not null,
recipient varchar not null,
date date not null,
amount integer not null
);


INSERT INTO #transfers(sender,recipient,date,amount) VALUES ('Smith','Williams','2000-01-01',200);
INSERT INTO #transfers(sender,recipient,date,amount) VALUES ('Smith','Taylor','2002-09-27',1024);
INSERT INTO #transfers(sender,recipient,date,amount) VALUES ('Smith','Johnson','2005-06-26',512);
INSERT INTO #transfers(sender,recipient,date,amount) VALUES ('Williams','Johnson','2010-12-17',100);
INSERT INTO #transfers(sender,recipient,date,amount) VALUES ('Williams','Johnson','2004-03-22',10);
INSERT INTO #transfers(sender,recipient,date,amount) VALUES ('Brown','Johnson','2013-03-20',500);
INSERT INTO #transfers(sender,recipient,date,amount) VALUES ('Johnson','Williams','2007-06-02',400);
INSERT INTO #transfers(sender,recipient,date,amount) VALUES ('Johnson','Williams','2005-06-26',400);
INSERT INTO #transfers(sender,recipient,date,amount) VALUES ('Johnson','Williams','2005-06-26',200);

这是查询:

WITH cte AS
(
SELECT *, rn = ROW_NUMBER() OVER (PARTITION BY recipient ORDER BY amount DESC)
FROM #transfers
)
SELECT recipient
FROM cte
WHERE rn <= 3
GROUP BY recipient
HAVING SUM(amount) >= 1024
ORDER BY recipient

但是我得到这个错误:

在“(”附近:语法错误

最佳答案

CTEROW_NUMBER 在 MySQL 中不可用。

尝试使用子查询:

SELECT recipient
FROM
(
SELECT t.*, @rownum := @rownum + 1 AS rank
FROM #transfers t, (SELECT @rownum := 0) r
)X
WHERE rank <= 3
GROUP BY recipient
HAVING SUM(amount) >= 1024
ORDER BY recipient

Fiddle Demo

关于mysql - ( 附近的语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36571856/

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