0

私はこれを持っていると思っていましたが、持っていないことは明らかです。下の表から、最も積極的な貢献 (記事) を行ったユーザーを一番上に表示し、その後にそうでないユーザーを表示しようとしています。テーブルは単純でartc_id、記事 ID はartc_status記事が承認されたかどうかを示すステータスです。0承認される、承認され1ない、そして記事を書いたユーザーが来る。

私が達成しようとしている結果は次のとおりです。

Total Contributions Positive    Contributing User
4                   4           2
3                   2           1
1                   1           4
3                   0           3

テーブル

"id"    "artc_id"   "artc_status"   "artc_user" "artc_country"
"1"     "1"         "0"             "1"         "US"
"2"     "2"         "0"             "1"         "US"
"3"     "3"         "1"             "1"         "US"
"4"     "4"         "0"             "2"         "US"
"5"     "5"         "0"             "2"         "US"
"6"     "6"         "0"             "2"         "US"
"7"     "7"         "0"             "2"         "US"
"8"     "8"         "1"             "3"         "US"
"9"     "9"         "1"             "3"         "US"
"10"    "10"        "1"             "3"         "US"
"11"    "11"        "0"             "4"         "US"

私が思いついたSql

select count(artc_status) as stats , artc_user from contributions where artc_status = 0 group by artc_user order by  stats desc;

上に投稿したような結果が得られるのはあまり運がありません。お手伝いいただけますか?これは完全に私を超えています。

4

2 に答える 2

1
select 
     count(artc_status) as stats , 
     count(case when artc_status=1 then 1 end) Positive,      
     artc_user[Contributing User] 
from 
    contributions 
group by 
    artc_user 
order by  stats desc;
于 2013-09-18T14:13:30.433 に答える
0

2 つの集計列を取得するには、条件付き集計が必要だと思います。

select count(*) as TotalContributions, count(artc_status = 0) as PositiveContributions, artc_user
from contributions
group by artc_user
order by PositiveContributions desc;
于 2013-09-18T14:13:09.220 に答える