私がこのテーブルを手に入れたとしましょう:
mytable
+------+-------+ | type | count | +------+-------+ | red | 4 | | blue | 3 | | red | 2 | | blue | 7 | +------+-------+
今私はこれを取り戻したい:
+--------+---------+ | maxRed | maxBlue | +--------+---------+ | 4 | 7 | +--------+---------+
これどうやってするの?
これは私が試したものです
SELECT MAX(count) as maxRed, 0 as maxBlue FROM mytable WHERE type='red'
UNION
SELECT 0 as maxRed, MAX(count) as maxBlue FROM mytable WHERE type='blue'
しかし、それは完全には機能せず、結果だけです
+--------+---------+ | maxRed | maxBlue | +--------+---------+ | 4 | 0 | | 0 | 7 | +--------+---------+
これはそれを行う方法です:
SELECT
MAX(CASE WHEN type = 'red' THEN `count` ELSE NULL END) AS maxRed,
MAX(CASE WHEN type = 'blue' THEN `count` ELSE NULL END) AS maxBlue
FROM
mytable
WHERE type IN ('red', 'blue');
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加