【问题标题】:Why is the ORDER BY DESC not working correctly?为什么 ORDER BY DESC 不能正常工作?
【发布时间】:2021-04-02 01:17:59
【问题描述】:

以下代码的orderby不起作用..怎么会?

SELECT A.name, A1.Title, COUNT (T.TrackId) AS 'Total Number of Track', SUM(T.UnitPrice)AS 'Total Price' FROM 艺术家 A JOIN 专辑 A1 JOIN 曲目 T 在 a.ArtistId=A1.ArtistId 和 A1.AlbumId=T.AlbumId 按 A1 分组。标题 按 T​​.TrackId DESC 排序

【问题讨论】:

    标签: sqlite syntax sql-order-by


    【解决方案1】:

    您当前的查询没有意义,因为您告诉 SQLite 使用在 GROUP BY 聚合之后不存在的列进行排序。如果您想按数量订购,那么也许这个版本就是您想要的:

    SELECT
        A.name,
        A1.Title,
        COUNT(T.TrackId) AS 'Total Number of Track',
        SUM(T.UnitPrice) AS 'Total Price'
    FROM artists A
    INNER JOIN albums A1
        ON a.ArtistId = A1.ArtistId
    INNER JOIN tracks T
        ON A1.AlbumId = T.AlbumId
    GROUP BY
        A.name,
        A1.Title
    ORDER BY
        COUNT(T.TrackId) DESC;
    

    【讨论】:

    • 我明白了!谢谢你。有没有办法做到这一点,而不使用两次计数聚合?
    • SQLite 很可能不会聚合“两次”。一旦计算出计数,它就会缓存并在稍后订购时重复使用。
    猜你喜欢
    • 2014-06-18
    • 2021-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-09
    • 2018-07-15
    • 2015-02-26
    • 1970-01-01
    相关资源
    最近更新 更多