gpt4 book ai didi

mysql - 无法在我的数据库上运行特定的 SQL 查询

转载 作者:搜寻专家 更新时间:2023-10-30 21:49:01 25 4
gpt4 key购买 nike

我有一个用于聊天应用程序的数据库。

CREATE TABLE Users (uid int PRIMARY KEY, name text, phone text );

CREATE TABLE Messages (recipient int REFERENCES Users(uid), sender int
REFERENCES Users(uid), time timestamp NOT NULL, message text NOT NULL,
PRIMARY KEY (recipient, sender, time));

http://www.sqlfiddle.com/#!9/bd36d1

我想为发送最多消息的 5 个用户中的每一个定义该用户发送的消息的平均长度。

我写了以下查询:

SELECT avg(strlen(message))
FROM Messages
WHERE sender IN
(SELECT *
FROM (SELECT sender, COUNT(sender) AS NumberOfMessages
FROM Messages
GROUP BY sender) AS MessagesPerSender
ORDER BY NumberOfMessages DESC
LIMIT 5)

首先,这个查询是否正确?它能给我想要的结果吗?问题是我根本无法运行它,因为出现错误:

“这个版本的 MySQL 还不支持 'LIMIT & IN/ALL/ANY/SOME 子查询”

最佳答案

这可能不是 mysql 的正确方法

select sender,avg(length(message)),count(*)
from messages
group by sender
order by avg(length(message)) desc limit 5;

+--------+----------------------+----------+
| sender | avg(length(message)) | count(*) |
+--------+----------------------+----------+
| 1 | 9.0000 | 1 |
| 9 | 5.5000 | 2 |
| 2 | 5.0000 | 1 |
+--------+----------------------+----------+
3 rows in set (0.00 sec)

请注意,这可能不会以您想要的方式处理平局。

关于mysql - 无法在我的数据库上运行特定的 SQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55966566/

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