在 SQLITE 中检索基于一个数字列的排序数据

Retrieve sorted data based on one numeric column in SQLITE

我在 SQLITE 数据库中有一个 table 喜欢的附件图像。

我正在尝试检索基于 SUM(freight) 列的排序数据。为此,我使用了以下查询。

SELECT 船舶国家 来自国家详情 按船舶国家分组 ORDER BY SUM(运费) ASC
当我 运行 时,我得到如下结果。

如果我 运行 下面的查询我得到如下结果。没关系。

SELECT ShipCountry, ShipCity 来自国家详情 按 ShipCountry、ShipCity 分组 按金额排序(运费),ShipCity ASC

我需要的不是这个结果,如下所示。按条款排序 SUM(Freight) 应仅考虑 ShipCountry。它不应同时考虑 ShipCountry 和 ShipCity。我的预期结果是

如何通过SQLITE查询得到这个结果?

在SQL中我们可以实现如下查询。

Select ShipCountry, ShipCity from Countrydetails group by ShipCountry, ShipCity Order by SUM(SUM(freight)) over(partition by ShipCountry), Shipcity Asc.

我们在 Sqlite 中需要这样的等效查询。

使用子查询查找每个国家/地区的运费总和,然后仅使用该国家/地区级别的总和进行订购:

SELECT
    cd1.ShipCountry,
    cd1.ShipCity
FROM Countrydetails cd1
INNER JOIN
(
    SELECT ShipCountry, SUM(freight) AS freight_sum
    FROM Countrydetails
    GROUP BY ShipCountry
) cd2
    ON cd1.ShipCountry = cd2.ShipCountry
ORDER BY
    cd1.freight_sum,
    cd1.ShipCountry,    -- needed in case two countries happen to have the same sum
    cd1.ShipCity

我们可以为每个城市的 frieght 添加另一个排序级别,以便在给定国家/地区内进行排序。但是您的预期输出并不意味着您想要这个。