我有一個MySQL表像這樣分組排名:由Type
MySQL的 - 計算由兩列
Tbl
[Username Number Type]
manos 5 A
manos 6 B
maria 2 A
maria 3 B
maria 1 C
nick 7 A
nick 4 C
aaron 8 A
我想創建一個視圖,我將有每個用戶的行列中(通過更大的數字),分組,與每種類型的其他用戶相比較。更具體地講,我想輸出是:
[Username Rank Type]
manos 3 A
manos 1 B
maria 4 A
maria 2 B
maria 2 C
nick 2 A
nick 1 C
aaron 1 A
我曾嘗試以下:
select Username, count(*) as Rank, Type
from Tbl as aw
where
Number <= (
select Number
from Tbl
where Type = aw.Type
)
group by Username, Type
的結果是,我得到了Subquery returns more than 1 row
錯誤。
任何幫助,將不勝感激!
編輯:改變列建議的名稱。也是一個小提琴幫助:http://sqlfiddle.com/#!9/55ec3f
編輯2:對「所有組合等級」的一些澄清和更正。 比方說,我們有另一個表稱爲Teams
:
Teams
[Username Team]
manos T1
manos T2
maria T1
maria T2
nick T1
nick T2
aaron T3
在這種情況下,我想提取的組(S)和類型的每個組合行列,即對於馬諾斯我想:
- 排名針對人與針對型人阿
- 排名在T2與類型針對人阿
- 排名在T1與B型
- 針對人秩T1 T2 B型
- 針對T1人和T2與式排名針對人在T1和T2甲
- 等級爲B
好吧,重讀兩遍後,我仍然不明白你是什麼期待在這裏。 :( – Krishnakumar
你有mysql中的第一個表,你必須產生第二個。例如,A組中的所有人都是manos,排名第三。 –
我瞭解隊伍,但我不明白manos爲什麼會優先在結果 – Strawberry