-1

私は学校のスポーツプロジェクトに取り組んでいます..これにはテーブルがあります:-結果(状態、ポイント)

メダルの場合、次の基準があります:-

Gold  - 7 Point
Silver- 5 Points
Bronze- 4 Points

各州が獲得した金、銀、銅メダルの総数を数えたい..このために、次のクエリを使用しました。

select STATE,sum(Point) as MEDAL from [Sheet2$] Group by STATE order by sum(Point) desc

しかし、それは合計ポイント数のみをカウントします.私は金、銀、銅メダルの合計数も欲しい..だから私を助けてください

4

3 に答える 3

3

いくつかの条件付きロジックを実行してみてください。ここでは、他の列がなく、データがまだ集計されていないと仮定していますが、おそらく次のようなものです。

SELECT      STATE,
            SUM(Point) AS MEDAL,
            SUM(CASE WHEN Point = 7 THEN 1 ELSE 0 END) AS GoldCount,
            SUM(CASE WHEN Point = 5 THEN 1 ELSE 0 END) AS SilverCount,
            SUM(CASE WHEN Point = 4 THEN 1 ELSE 0 END) AS BronzeCount

FROM        [Sheet2$]

GROUP BY    STATE 

ORDER BY    SUM(Point) DESC
于 2013-09-20T07:48:33.693 に答える
0

私の理解が正しければ、表のポイントからメダルを決定し、その結果をグループ化してメダルを数えることができます。

select
  STATE, Medal, count(*) as [Count]
from
  (select
    STATE,
    case
      when Point >= 7 then 'Gold'
      when Point >= 5 then 'Silver'
      when Point >= 4 then 'Bronze'
      else null
    end as Medal
  from
    [Sheet2$]
  ) x
group by
  STATE, Medal
order by
  STATE
于 2013-09-20T07:51:40.873 に答える
0

これは、他の戦略の代替手段です。テーブルが次のようになっていると仮定します。

+-------+--------+
| state | points |
+-------+--------+
| IL    |      7 |
| ON    |      3 |
| ON    |      7 |
...
| TX    |      7 |
+-------+--------+

次に、次のようなものがメダル数を取得します。

SELECT
  state,
  count(*) AS medal
FROM your_table
GROUP BY state, points
ORDER BY state, points desc
于 2013-09-20T07:51:49.810 に答える