0

SQLiteデータベースに添付されたイメージのような表があります。SQLite内の1つの数値列に基づいてソートされたデータを取得します

Sqlite table

私はSUM(貨物)の列に基づいてソートされたデータを取得しようとしています。このため私は以下のクエリを使用しています。 CountryDetails グループから

SELECT出荷先都道府県 SUM(貨物)私はこれを実行すると、私は以下のような結果を取得していますASC
BY出荷先都道府県 ORDER BY。

Sqlite result

私は以下のような結果を得ています以下のクエリを実行する場合。大丈夫だよ。出荷先都道府県、SUM(貨物)、ShipCity ASCこの代わりに

Result

BY ShipCity ORDER BY CountryDetails グループから

SELECT出荷先都道府県、ShipCity 私は以下のような結果を必要としています。 by節でSUM(Freight)はShipCountryだけを考慮する必要があります。 ShipCountryとShipCityの両方を考慮する必要はありません。私の期待される結果は、SQLiteのクエリを通じて、この結果を達成するためにどのように

Tableau result

のですか?

SQLでは、以下のようなクエリを実現できます。

ShipCountry、ShipCityからShipCountry、ShipCityでShipCountry、ShipCityを選択すると、ShipCountry、ShipCityからSUM(SUM(貨物))オーバ(パーティションはShipCountry)、ShipCity Asc。

これと同様のクエリが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節のマイナーチェンジを行った後はうまく動作します。 オーダーBy cd2.freight_sum cd1.ShipCountry cd1.ShipCity –

関連する問題