gpt4 book ai didi

sql - 理解内部查询的总结

转载 作者:IT王子 更新时间:2023-10-29 06:29:42 25 4
gpt4 key购买 nike

问题理解子查询

我不明白来自 www.sqlitetutorial.net/sqlite-subquery 的这个例子: enter image description here

内部查询只返回一个数字:1422138358

enter image description here

但是这个数字的平均值是不同的:

enter image description here

那么为什么 1422138358 的平均值不是 1422138358?这两个查询不是独立的?如果我删除“ORDER BY albumid”,结果是一样的:

enter image description here

示例数据:
http://www.sqlitetutorial.net/sqlite-sample-database/

编辑:好的,由于列是整数,所以可能存在一些整数溢出,但我仍然不明白为什么这个例子取单个数字的平均值? enter image description here

最佳答案

很可能这是一个错误

1)从文本中您可以看到他们想要“对专辑的大小求和”并且您正在查询 Tracks 表,该表应该有一个 album_ID 列

2)如果您仅使用聚合列,则不能使用 ORDER BY比如

select SUM(bytes)
from Tracks
Order by albumID

因为它没有任何可订购的东西。

另请注意,您不能 使用 在子查询中排序

最后这里缺少的是查询的剩余部分:

Select AVG(album.size) as [avg(album.size)]
from (
select albumID,SUM(bytes) as size
from Tracks
GROUP BY albumID

) as album

您可以了解有关子查询的更多信息 here

如果您想尝试这些,可以复制以下代码并将其用于该网站上的进一步练习:

    CREATE TABLE tracks (AlbumID int,bytes int)
CREATE TABLE albums (AlbumID int, title nvarchar(50))
insert into Tracks values (1,2),(2,10),(3,15)
Select AVG(album.size) as [avg(album.size)]
from (
select AlbumID,SUM(bytes) as size
from tracks
GROUP BY albumID

) as album

希望对你有帮助

关于sql - 理解内部查询的总结,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44807671/

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