2017-07-01 2 views
0

私はSQLで次のようになり、非常に簡単なテーブルを持っている:私がやりたい何か0から10テーブルに値が何回表示されるかを示すレポートを作成するにはどうすればよいですか?

に値を持つ

EnglishCount 

0 
1 
2 
1 
3 
4 
6 
1 
2 

ただ1つの列がその意志レポートを作成することです私にこれを見せてください:

EC  Qty 
1  3 
2  2 
3  1 
4  1 
6  1 

誰かが私にこれを達成する方法を提案できますか?私が順番に表示され、行のみがあなたの場合はEnglishCount> 0

答えて

1

これは、1つの正しいアプローチである:

SELECT 
    EnglishCount AS EC, 
    COUNT(*) AS Qty 
FROM yourTable 
GROUP BY EnglishCount 
HAVING COUNT(*) > 0 
ORDER BY 
    CASE WHEN COUNT(*) = 1 THEN 0 ELSE 1 END, 
    EnglishCount 
+0

非常にうまく動作します。ご協力いただきありがとうございます – Alan2

0
select EnglishCount as EC,count(*) as Qty from table group by EnglishCount; 

あなたはEnglishCountで注文したい場合は、

select EnglishCount as EC,count(*) as Qty from table group by EnglishCount order by EnglishCount; 

を持っている数を表示するにはECの値をたいことに注意してくださいcountで注文したい、

select EnglishCount as EC,count(*) as Qty from table group by EnglishCount order by Qty; 
+0

は、どのように私はそれが最初の1の数を持っている行の合計数を示しますので、これもカウント値で注文することができますか? – Alan2

+0

@Alanは最後の文を参照してください。 – wrlee

0
select EnglishCount as EC,count(*) as Qty from TableName where EnglishCount > 0 group by EnglishCount; 

はこれを試して...

+0

これをカウント値で並べ替えるには、最初に1のカウントを持つ行の総数を表示するにはどうすればよいですか? – Alan2

+1

EnglishCountをECとして選択し、TableNameからCount(*)を数えます。ここでEnglishCount> 0のグループはEnglishCountで注文します。これを試してください – Nithin

関連する問題