0

チームのキャプテンがスプレッドシートにデータを入力して作成した大きなデータテーブルがあります。これは基本的に、地元のバドミントン リーグのスコアシートです。各一致が表され、その一致のすべてのデータがその行に含まれています。例: 日付、ディビジョン、ホーム チーム、アウェイ チーム、選手、パートナーシップ、スコアなど。

私がデータから得ようとしているのは、最も成功したパートナーシップです。以下を使用して、さまざまなパートナーシップをすべて特定することから始めました。

(SELECT "home mens 1" AS "mens" FROM "Results") UNION
(SELECT "home mens 2" AS "mens" FROM "Results") UNION
(SELECT "home mens 3" AS "mens" FROM "Results") UNION
(SELECT "away mens 1" AS "mens" FROM "Results") UNION
(SELECT "away mens 2" AS "mens" FROM "Results") UNION
(SELECT "away mens 3" AS "mens" FROM "Results") ORDER BY "mens"

これにより、ペアリングの素晴らしいリストが得られました。列見出し付きのデータテーブルをここで見ることができます: https://docs.google.com/spreadsheet/pub?key=0AkFtD3i39wUZdFJSbVVXUUVvNi0wSXNmNEJ5XzhCWEE&output=html

それが不可能な場合、または何らかの形でデータを再構築する必要がある場合は、別の解決策を聞きたいです.

私はもう試した:

(SELECT "home mens 1" AS "mens", SUM("home score game 1" + "home score game 2") AS "points total" FROM "Results") UNION
(SELECT "home mens 2" AS "mens", SUM("home score game 5" + "home score game 6") AS     "points total" FROM "Results") UNION
(SELECT "home mens 3" AS "mens", SUM("home score game 9" + "home score game 10") AS "points total" FROM "Results") UNION
(SELECT "away mens 1" AS "mens", SUM("away score game 1" + "away score game 2") AS "points total" FROM "Results") UNION
(SELECT "away mens 2" AS "mens", SUM("away score game 5" + "away score game 6") AS "points total" FROM "Results") UNION
(SELECT "away mens 3" AS "mens", SUM("away score game 9" + "away score game 10") AS "points total" FROM "Results") ORDER BY "mens"`

しかし、まったく機能していないようです..

パートナーシップとゲーム スコアの関係について: ペアに関連するスコア列は次のとおりです。

  • 男子ペア 1 ゲーム 1 と 2 をプレイ
  • 女子ペア 1 ゲーム 3 と 4
  • 男子ペア 2 ゲーム 5 & 6
  • 女子ペア 2 ゲーム 7 & 8
  • 男子ペア 3 ゲーム 9 & 10
  • 女子ペア 3 ゲーム 11 & 12
  • 混合ペア 1 ゲーム 13 & 14
  • 混合ペアがゲーム 15 & 16 をプレイ
  • 混合ペア 3 プレイ ゲーム 17 & 18.

最も成功したペアは、最も多くのゲーム (15 のスコア) を獲得し、次にゲームあたりの平均ポイント数が最も高いペアです。

私は OpenOffice Base でこれを行っていますが、SQL に関しては何に基づいているのかわかりません - どうやらそれは HSQL を使用していることを意味します: http://www.oooforum.org/forum/viewtopic.phtml?t=140063

4

2 に答える 2

0

あなたのデータには、「最も成功したパートナーシップ」を正確に見つけられない原因となる何かが欠けていると思います。あなたはすべてのパートナーシップ、すべてのゲーム スコアを持っていますが、どのパートナーシップがどのゲーム スコアを獲得し、いくつのスコアを獲得するかの間には何の関係もありません。そうでなければ、あなたが欲しいものを見つけるのは難しくありません。

最も成功したホーム チーム パートナーシップを見つける方法の一例

注: RDBMS は Oracle であり、テストされていないコードであると仮定


SELECT A.Partner, 
       SUM(CASE WHEN "GameScore" = 15 THEN 1 ELSE 0 END) AS "NumberOfWin", 
       AVG("GameScore") as "AvgGameScore"
FROM (
SELECT "home mens 1" AS "Partner", "home score game 1"  AS  "GameScore" FROM "Results"  UNION ALL
SELECT "home mens 1" AS "Partner", "home score game 2"  AS  "GameScore" FROM "Results"  UNION ALL
SELECT "home ladies 1" AS "Partner", "home score game 3"  AS  "GameScore" FROM "Results"  UNION ALL
SELECT "home ladies 1" AS "Partner", "home score game 4"  AS  "GameScore" FROM "Results"  UNION ALL
SELECT "home mens 2" AS "Partner", "home score game 5"  AS  "GameScore" FROM "Results"  UNION ALL
SELECT "home mens 2" AS "Partner", "home score game 6"  AS  "GameScore" FROM "Results"  UNION ALL
SELECT "home ladies 2" AS "Partner", "home score game 7"  AS  "GameScore" FROM "Results"  UNION ALL
SELECT "home ladies 2" AS "Partner", "home score game 8"  AS  "GameScore" FROM "Results"  UNION ALL
SELECT "home mens 3" AS "Partner", "home score game 9"  AS  "GameScore" FROM "Results"  UNION ALL
SELECT "home mens 3" AS "Partner", "home score game 10"  AS  "GameScore" FROM "Results"  UNION ALL
SELECT "home ladies 3" AS "Partner", "home score game 11"  AS  "GameScore" FROM "Results"  UNION ALL
SELECT "home ladies 3" AS "Partner", "home score game 12"  AS  "GameScore" FROM "Results"  UNION ALL
SELECT "home mixed 1" AS "Partner", "home score game 13"  AS  "GameScore" FROM "Results"  UNION ALL
SELECT "home mixed 1" AS "Partner", "home score game 14"  AS  "GameScore" FROM "Results"  UNION ALL
SELECT "home mixed 2" AS "Partner", "home score game 15"  AS  "GameScore" FROM "Results"  UNION ALL
SELECT "home mixed 2" AS "Partner", "home score game 16"  AS  "GameScore" FROM "Results"  UNION ALL
SELECT "home mixed 3" AS "Partner", "home score game 17"  AS  "GameScore" FROM "Results"  UNION ALL
SELECT "home mixed 3" AS "Partner", "home score game 18"  AS  "GameScore" FROM "Results"  
) A
GROUP BY A.Partner
ORDER BY SUM(CASE WHEN "GameScore" = 15 THEN 1 ELSE 0 END), AVG("GameScore")
于 2013-04-04T00:20:58.930 に答える