0
を使用せずに、私は次の表を持っている:私は注文、サブクエリ(MySQLの)
+-----------+--------+------+--------+----------+----------+---------+-------+
| player_id | europe | asia | africa | namerica | lamerica | oceania | total |
+-----------+--------+------+--------+----------+----------+---------+-------+
| 121693 | 1076 | 70 | NULL | NULL | NULL | NULL | 1146 |
| 118840 | 40 | 490 | NULL | NULL | NULL | NULL | 530 |
| 121691 | 96 | 0 | NULL | NULL | NULL | NULL | 96 |
+-----------+--------+------+--------+----------+----------+---------+-------+
:
+-----------+--------+------+--------+----------+----------+---------+-------+
| player_id | europe | asia | africa | namerica | lamerica | oceania | total |
+-----------+--------+------+--------+----------+----------+---------+-------+
| 121693 | 1076 | 70 | NULL | NULL | NULL | NULL | 1146 |
| 121693 | 416 | 70 | NULL | NULL | NULL | NULL | 486 |
| 121693 | 40 | NULL | NULL | NULL | NULL | NULL | 40 |
| 118840 | 40 | NULL | NULL | NULL | NULL | NULL | 40 |
| 121693 | 40 | 70 | NULL | NULL | NULL | NULL | 110 |
| 118840 | 40 | 490 | NULL | NULL | NULL | NULL | 530 |
| 121691 | 96 | 0 | NULL | NULL | NULL | NULL | 96 |
| 121693 | 136 | 70 | NULL | NULL | NULL | NULL | 206 |
| 118840 | 40 | NULL | NULL | NULL | NULL | NULL | 40 |
| 121691 | 96 | NULL | NULL | NULL | NULL | NULL | 96 |
+-----------+--------+------+--------+----------+----------+---------+-------+
私は何を取得したいと思いことのようなものです以下のことを試しましたが、結果は私が必要とするものではありません。
SELECT player_id, europe, asia, africa, namerica,
lamerica, oceania, MAX(total) AS total
FROM tbl
WHERE total IS NOT NULL
GROUP BY player_id
ORDER BY total DESC
これは結果
+-----------+--------+------+--------+----------+----------+---------+-------+
| player_id | europe | asia | africa | namerica | lamerica | oceania | total |
+-----------+--------+------+--------+----------+----------+---------+-------+
| 121693 | 1076 | 70 | NULL | NULL | NULL | NULL | 1146 |
| 118840 | 40 | | NULL | NULL | NULL | NULL | 530 |
| 121691 | 96 | 0 | NULL | NULL | NULL | NULL | 96 |
+-----------+--------+------+--------+----------+----------+---------+-------+
私はMySQLのビューを使用していますのでご注意くださいです。 はありませんサブクエリを許可します。
編集:
前の提案に基づいて、私はこれ試してみました:
SELECT a.player_id, a.europe, a.asia, a.africa, a.lamerica, a.namerica, a.oceania, a.total
FROM tbl AS a
INNER JOIN (
SELECT player_id, MAX(total) AS total
FROM tbl
GROUP BY player_id) b
ON a.player_id = b.player_id AND a.total = b.total
をしかし、私はこれらの結果を得る:
+-----------+--------+------+--------+----------+----------+---------+-------+
| player_id | europe | asia | africa | lamerica | namerica | oceania | total |
+-----------+--------+------+--------+----------+----------+---------+-------+
| 121693 | 1076 | 70 | NULL | NULL | NULL | NULL | 1146 |
| 118840 | 40 | 490 | NULL | NULL | NULL | NULL | 530 |
| 121691 | 96 | NULL | NULL | NULL | NULL | NULL | 96 |
| 121691 | 96 | 0 | NULL | NULL | NULL | NULL | 96 |
+-----------+--------+------+--------+----------+----------+---------+-------+
またネクタイを返します。 どうすればこの問題を回避できますか?
「合計AS合計」が必要だと思ったのはなぜですか? – RiggsFolly
申し訳ありません。編集しました。 MAX(合計)を合計として使用します。 – dimoss
@Barmar:質問を編集しました。私は他の同様の質問で投稿されたソリューションを試みたが、私はそれを働かせることができなかった。どんな助け?ありがとう! – dimoss