0

我有一個像SQLITE數據庫中附加圖像的表。基於SQLITE中的一個數字列檢索排序的數據

Sqlite table

我試圖找回基於SUM(貨運)列排序的數據。爲此,我使用了下面的查詢。

SELECT貨主國家 FROM CountryDetails GROUP BY貨主國家 ORDER BY SUM(貨運)ASC
當我運行此我得到的結果如下圖所示。

Sqlite result

如果我運行下面的查詢我得到的結果如下圖所示。沒關係。

SELECT貨主國家,貨主國家 FROM CountryDetails GROUP BY貨主國家,貨主國家 ORDER BY SUM(貨運),貨主國家ASC

Result

取而代之的是我需要一個像下面的結果。按條款順序SUM(Freight)應僅考慮ShipCountry。它不應該考慮ShipCountry和ShipCity。我的預期結果是

Tableau result

如何實現通過SQLITE查詢這樣的結果?

在SQL中我們可以實現如下查詢。

選擇貨主國家,從Countrydetails組貨主國家由貨主國家,貨主國家排序SUM(SUM(貨運))以上(由貨主國家分區),貨主國家升序。

我們需要在Sqlite中這樣的等效查詢。

+0

西雅圖在波蘭? –

回答

2

使用子查詢找到frieght金額爲每個國家,再下訂單隻用這個國家一級總和:

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另一類水平,在給定的順序國家。但是你的預期產出並不意味着你想要這個。

+0

謝謝。在Order by子句做了小改動之後,它效果很好。 ORDER By cd2.freight_sum cd1.ShipCountry cd1.ShipCity –