我有一個mysql
表是這樣的:複雜(或不可能)從MySQL表中選擇
Person x minutes population
p1 F 3 p1p2p3p4
p2 B 1 p1p2p3p4
p1 B 7 p1p2p3
p3 F 2 p2p3p1
p1 F 3 p1p2
p1 B 4 p2p3p1
p2 C 3 p1p2p3
p2 B 1 p2p1p3
p2 F 7 p2p3p4
p3 B 2 p2p3p4
p1 F 3 p2p1p3p4
我需要什麼來選擇,每個Person
是:
1計數次數X的數等於F
;
2-計算x的次數等於B
;
3-當person
出現在變量中時的值minutes
;
然後將所得select
會是這樣:
Person nF nB tminutes
p1 3 2 24
p2 1 2 36
p3 1 1 33
我不知道這甚至有可能。我試過類似的東西:
SELECT
Person,
sum(x='F') as nF,
sum(x='B') as nB,
sum(minutes) WHERE population IS LIKE '%Person%' as tminutes
FROM myTable
GROUP BY Person
任何想法都會非常受歡迎!謝謝。
一個'SELECT'看起來幾乎是不可能的,通常是要告訴壞的數據庫設計。關係數據庫不是榮耀的CSV容器。建立一些實際的關係,你的SQL變得更容易。將「人口」欄目解析爲有意義的內容。 – Tomalak
'人口'對我來說有意義。這將是沒有問題的:'SELECT總和(分鐘)作爲tminutes從myTable的人口LIKE'%p2%''。 – Javi
我沒有說過它對你沒有任何意義。它對數據庫*沒有意義。它表示一個數據庫設計沒有表示的結構,這就是爲什麼你不能使用SQL(或者* efficient * SQL)來選擇它的原因。 – Tomalak