Sqlite 为什么DESC的订单不能正常工作?

Sqlite 为什么DESC的订单不能正常工作?,sqlite,syntax,sql-order-by,Sqlite,Syntax,Sql Order By,以下代码的orderby不工作。。为什么 选择A.name、A1.Title、COUNT(T.TrackId)作为“曲目总数”,SUM(T.UnitPrice)作为“总价” 来自艺术家A加入专辑A1加入曲目T 在a.ArtistId=A1.ArtistId和A1.AlbumId=T.AlbumId上 按A1分组。标题 ORDER BY T.TrackId DESC您当前的查询没有意义,因为您告诉SQLite使用GROUP BY聚合后不存在的列进行订购。如果您想按计数订购,那么可能您想要的是此版本

以下代码的orderby不工作。。为什么

选择A.name、A1.Title、COUNT(T.TrackId)作为“曲目总数”,SUM(T.UnitPrice)作为“总价” 来自艺术家A加入专辑A1加入曲目T 在a.ArtistId=A1.ArtistId和A1.AlbumId=T.AlbumId上 按A1分组。标题
ORDER BY T.TrackId DESC

您当前的查询没有意义,因为您告诉SQLite使用
GROUP BY
聚合后不存在的列进行订购。如果您想按计数订购,那么可能您想要的是此版本:

选择
名字,
A1.标题,
将(T.TrackId)计数为“轨道总数”,
总价(T.单价)作为“总价”
来自艺术家A
内部连接相册A1
关于a.ArtistId=A1.ArtistId
内连接轨道T
在A1.AlbumId=T.AlbumId上
分组
名字,
A1.标题
订购人
计数(T.TrackId)描述;

我明白了!非常感谢。有没有办法做到这一点,而不使用计数聚合两次?SQLite很可能不会“两次”聚合。一旦计算出计数,它就会缓存并在以后排序时重用它。