異なるカウントの3つのテーブルを結合します

ファハド・アシュラフ

私は3つのテーブルを持っています。

チーム

   TeamId        Team 
    1       Manchester United
    2       Arsenal 
    3       Liverpool

一致

 MatchId HomeTeamId AwayTeamId  MatchStartDate Match_WonBy
  3         1           2          2/2/2015       2
  8         3           1          6/2/2015       3

スコア

  ScoreId MatchId TeamId      ScorTime
  1         3      1      2/2/2015 12:30:00
  2         3      2      2/2/2015 12:35:00
  3         3      1      2/2/2015 12:38:00
  4         8      1      6/2/2015 12:45:00
  5         8      1      6/2/2015 12:49:00

私はこれを試しましたが、うまくいきません。

SELECT Team.TeamName, COUNT(h.HomeTeamId) AS TotalMatch,
    SUM(CASE WHEN h.Match_Status = Team.TeamId THEN 1 ELSE 0 END) AS HomeScore,
    SUM(CASE WHEN h.Match_WonBy  = Team.TeamId OR a.Match_Status= Team.TeamId THEN 1 ELSE 0 END) AS Total
FROM Team RIGHT JOIN Match h
ON Team.TeamId = h.HomeTeamId JOIN Match a
ON Team.TeamId = a.AwayTeamId  
GROUP BY Team.TeamName

私は私が得ていないこれを必要としていました。ここに画像の説明を入力してください

参考:宿題ではありません。

ここでポイントは、勝ちに3を掛け、引き分けに1を加えることによって計算されます。

プラビーン

これを試して:

select 
    t.Team,
    count(x.TeamId) played,
    sum(coalesce(x.win, 0)) as win,
    sum(coalesce(x.loss, 0)) as loss,
    count(x.TeamId) - sum(coalesce(x.win, 0)) - sum(coalesce(x.loss, 0)) as draw, 
    sum(coalesce(x.win, 0)) * 3 + (count(x.TeamId) - sum(coalesce(x.win, 0)) - sum(coalesce(x.loss, 0))) as point
from Team t
left join (
    select 
    HomeTeamId TeamId,
    case when Match_WonBy = HomeTeamId then 1 else 0 end win,
    case when Match_WonBy = AwayTeamId then 1 else 0 end loss
    from Match
    union all
    select
    AwayTeamId TeamId,
    case when Match_WonBy = AwayTeamId then 1 else 0 end win,
    case when Match_WonBy = HomeTeamId then 1 else 0 end loss
    from Match
) x on t.TeamId = x.TeamId
group by t.Team
order by
sum(coalesce(x.win, 0)) * 3 + (count(x.TeamId) - sum(coalesce(x.win, 0)) - sum(coalesce(x.loss, 0))) desc

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

2つのテーブル間で異なるカウント-外部結合を使用しますか?

分類Dev

結合ステートメントで異なるテーブルの行をカウントします

分類Dev

3つのテーブルを結合してカウントします

分類Dev

異なる列から、同じテーブルの複数のカウントを結合しますか?

分類Dev

SQLの結合クエリを使用して、3番目のテーブルを持つ2つの異なるテーブルから2つの列のカウントを取得します

分類Dev

カウントをGroupbyで異なるテーブルから1つの結果セットに結合します

分類Dev

SQL:2つの異なるテーブルから2つの異なる列をカウントします

分類Dev

カウントで3つのテーブルを結合する

分類Dev

2つのテーブルを結合してカウントします

分類Dev

3つのテーブルを結合し、カウントを選択します

分類Dev

MySQL:3つのテーブルを結合し、カウントを取得します

分類Dev

3つのテーブルを結合し、UNION1列でレコードをカウントする方法

分類Dev

2つの異なるテーブルを3番目のテーブルに結合します

分類Dev

Rails、2つのテーブルを結合し、1を超えるカウントを表示します。

分類Dev

PostgreSQLで3つのテーブルを結合した後に行をカウントする

分類Dev

3つのテーブルを結合し、さまざまなフィールドをカウントします

分類Dev

2つの異なる共通列を持つ3つのテーブルを結合します

分類Dev

異なるテーブルの複数の列をカウントして合計します

分類Dev

SQL-3つの異なるテーブルからのユニオンカウント(*)はデカルト積を引き起こします

分類Dev

mysqlは、3つのテーブルから1つの異なる列を選択して結合します

分類Dev

2つの異なるテーブルからの2つのSELECTステートメントの結果を結合します

分類Dev

MySQLの3つのテーブルで内部結合を使用して、単一のテーブルで発生した値をカウントします

分類Dev

1つのテーブル結果に異なるカウントクエリを配置する方法

分類Dev

SQLを結合して3つのテーブルをカウントし、NULLを含める

分類Dev

mysql、2つのテーブル間で異なる値をカウントします

分類Dev

2つのテーブルと合計カウントの問題を結合します

分類Dev

SQL:カウント、加算、その他の制限付きで3つのテーブルを結合する

分類Dev

mysqlは2つの異なるテーブルを結合します

分類Dev

MySQLクエリ-3つのテーブルを結合してカウントし、1つの列でグループ化します

Related 関連記事

  1. 1

    2つのテーブル間で異なるカウント-外部結合を使用しますか?

  2. 2

    結合ステートメントで異なるテーブルの行をカウントします

  3. 3

    3つのテーブルを結合してカウントします

  4. 4

    異なる列から、同じテーブルの複数のカウントを結合しますか?

  5. 5

    SQLの結合クエリを使用して、3番目のテーブルを持つ2つの異なるテーブルから2つの列のカウントを取得します

  6. 6

    カウントをGroupbyで異なるテーブルから1つの結果セットに結合します

  7. 7

    SQL:2つの異なるテーブルから2つの異なる列をカウントします

  8. 8

    カウントで3つのテーブルを結合する

  9. 9

    2つのテーブルを結合してカウントします

  10. 10

    3つのテーブルを結合し、カウントを選択します

  11. 11

    MySQL:3つのテーブルを結合し、カウントを取得します

  12. 12

    3つのテーブルを結合し、UNION1列でレコードをカウントする方法

  13. 13

    2つの異なるテーブルを3番目のテーブルに結合します

  14. 14

    Rails、2つのテーブルを結合し、1を超えるカウントを表示します。

  15. 15

    PostgreSQLで3つのテーブルを結合した後に行をカウントする

  16. 16

    3つのテーブルを結合し、さまざまなフィールドをカウントします

  17. 17

    2つの異なる共通列を持つ3つのテーブルを結合します

  18. 18

    異なるテーブルの複数の列をカウントして合計します

  19. 19

    SQL-3つの異なるテーブルからのユニオンカウント(*)はデカルト積を引き起こします

  20. 20

    mysqlは、3つのテーブルから1つの異なる列を選択して結合します

  21. 21

    2つの異なるテーブルからの2つのSELECTステートメントの結果を結合します

  22. 22

    MySQLの3つのテーブルで内部結合を使用して、単一のテーブルで発生した値をカウントします

  23. 23

    1つのテーブル結果に異なるカウントクエリを配置する方法

  24. 24

    SQLを結合して3つのテーブルをカウントし、NULLを含める

  25. 25

    mysql、2つのテーブル間で異なる値をカウントします

  26. 26

    2つのテーブルと合計カウントの問題を結合します

  27. 27

    SQL:カウント、加算、その他の制限付きで3つのテーブルを結合する

  28. 28

    mysqlは2つの異なるテーブルを結合します

  29. 29

    MySQLクエリ-3つのテーブルを結合してカウントし、1つの列でグループ化します

ホットタグ

アーカイブ