[英]SELECT defined value based on GROUPBY of DISTINCT columns SQL
我有一個名為darts
的表格,如下所示:
CREATE TABLE "darts" (
"player" TEXT,
"opponent" TEXT,
"date" TEXT,
"competition" TEXT,
"round" TEXT,
"sets" REAL,
"sets won" REAL,
"sets lost" REAL,
"legs" INTEGER,
"legs won" INTEGER,
"legs lost" INTEGER,
"opponent score" INTEGER,
"score_begin_of_turn" INTEGER,
"score_after_first_dart" INTEGER,
"score_after_second_dart" TEXT,
"score_after_third_dart" TEXT
);
db 的每一行代表一個回合的玩家和相應的回合得分。 兩位玩家都以 0 局和 0 局獲勝,得分為 501 開始。雖然數據代表比賽的時間序列,但我想檢索每場比賽的“摘要”。 在howie的回答的幫助下,我寫了以下查詢
player = 'michael van gerwen'
opponent = 'gerwyn price'
query = f""" WITH DEDUPE AS (
SELECT *, ROW_NUMBER() OVER (PARTITION BY player, opponent, date, competition, round
ORDER BY player, opponent, date, competition, round) AS OCCURENCE
FROM darts)
SELECT *
WHERE OCCURENCE = 1
AND player LIKE '{player}'
AND opponent LIKE '{opponent}' """
這個查詢產生兩個玩家之間每個日期、錦標賽和回合的所有唯一匹配。 output 如下所示:
player opponent ... OCCURENCE
0 Michael van Gerwen Gerwyn Price ... 1
1 Michael van Gerwen Gerwyn Price ... 1
2 Michael van Gerwen Gerwyn Price ... 1
3 Michael van Gerwen Gerwyn Price ... 1
4 Michael van Gerwen Gerwyn Price ... 1
5 Michael van Gerwen Gerwyn Price ... 1
etc
但是,我也想確定最終得分。 這可以通過使用列中的值來找到legs won
和legs lost
。 我知道最后的分數等於
MAX(legs won) and MAX(legs lost)
但是,以上需要再次按player
、 opponent
、 date
、 competition
和round
分組。 如何將其包含在我的查詢中? 請指教! 謝謝
所需的 output:
player opponent ... legs_player legs_opponent
0 Michael van Gerwen Gerwyn Price ... 7 5
1 Michael van Gerwen Gerwyn Price ... 4 3
2 Michael van Gerwen Gerwyn Price ... 2 7
3 Michael van Gerwen Gerwyn Price ... 5 6
4 Michael van Gerwen Gerwyn Price ... 4 0
5 Michael van Gerwen Gerwyn Price ... 0 4
etc
沒有樣本數據無法確定,但您似乎想要匯總。
SELECT player, opponent, date, competition, round
, MAX("legs won") AS max_legs_won
, MAX("legs lost") AS max_legs_lost
FROM darts
WHERE player LIKE '{player}'
AND opponent LIKE '{opponent}'
GROUP BY player, opponent, date, competition, round
ORDER BY player, opponent, date, competition, round
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.