1

SQLを使用してデータをソートする方法について質問があります。そのために、私の問題を説明するために簡単な例を作成しました。

if object_id('MyTable', 'U') is not null drop table  dbo.MyTable;

create table MyTable
(
    country varchar(10) not null
    , town varchar( 10 ) not null
    , amount int not null
)

insert into MyTable values
( 'US', 'NYC', 100 )
, ( 'US', 'BAL', 150 )
, ( 'US', 'WAS', 200 )
, ( 'CA', 'MON', 100 )
, ( 'CA', 'TOR', 150 )
, ( 'CA', 'VAN', 200 )

ある意味でデータをソートするにはどうすればよいですか?

ありがとう、クリスチャン

4

3 に答える 3

3

SQL で並べ替えるには、Order By を使用します: http://msdn.microsoft.com/en-us/library/ms188385.aspx

したがって、Country、Amount、Town の順に並べ替えたい場合は、Where クラスの後に Order By 句を次のように追加します。

ORDER BY Country, Amount DESC, Town
于 2012-07-13T19:30:41.713 に答える
1

私はこれがそれをするべきだと思います:

SELECT
    country,
    SUM(amount) OVER(PARTITION BY country) as CountryTotal,
    town,
    amount
FROM        MyTable
ORDER BY    CountryTotal, country, town
于 2012-07-13T19:36:35.313 に答える
0

国の合計金額で注文するのか、金額だけで注文するのかわかりません。以下の国の使用の合計金額について。

select 
mt.country,
ctotal.countrycotal,
mt.town,
mt.amount
from 
(
SELECT 
 country, 
 SUM(amount) as countrycotal, 
 FROM        MyTable 
 group BY  country

) ctotal 内部結合 Mytable mt on ctotal.country = mt.country

order by ctotal.countrytotal,ctotal.country,mt.town

以下の量だけ使用する場合

select * from Mytable 
order by mt.amount,mt.country,mt.town
于 2012-07-14T06:30:49.223 に答える