とSQL Serverのクエリで並べ替え:が、私は以下のようなSQLクエリを持っているcase文
SELECT t.range AS [Order Amount Range],
Count(*) AS [Total Orders]
FROM (SELECT CASE
WHEN totalamount BETWEEN 0 AND 49 THEN ' 0 - 49'
WHEN totalamount BETWEEN 50 AND 99 THEN ' 50 - 99'
WHEN totalamount BETWEEN 100 AND 149 THEN ' 100 - 149'
WHEN totalamount BETWEEN 150 AND 199 THEN ' 150 - 199'
WHEN totalamount BETWEEN 200 AND 249 THEN ' 200 - 249'
WHEN totalamount BETWEEN 250 AND 299 THEN ' 250 - 299'
WHEN totalamount BETWEEN 300 AND 349 THEN ' 300 - 349'
WHEN totalamount BETWEEN 350 AND 399 THEN ' 350 - 399'
WHEN totalamount BETWEEN 400 AND 449 THEN ' 400 - 449'
ELSE 'Above 500'
END AS range
FROM [order]) t
GROUP BY t.range
ORDER BY t.range
今の問題は、ソートが動作していないとの結果が任意の特定の方法で来ているということです。したがって、最初の行には "0-49"の範囲が含まれ、2番目の行には "200-249"が含まれます。
正常なシーケンスを取得するにはどうすればよいですか?
グループ句でも集計関数でも使用されていないため、cluaseでRowIDを使用することはできません。 – mansi
t。[範囲] = b。どのように可能ですか?範囲はvarcharで、ROWIDはint型です – mansi
@MansiChaudhari私の悪い、JOINの操作はグループの後になります。 – NEER