私はMySQLのROLLUPに関する問題に遭遇し、結果のNULLを扱っています。 IFNULL/COALESCE関数は単純な列ではうまく機能しますが、日付関数で使用すると分解されるようです。例としては、次のとおりです。私は非日付列(例えばVARCHAR)を照会する場合、私はIFNULLを使用してNULL値を扱う、または機能を結合することができるロールアップ、coalesce/ifnull、および日付関数によるMySQLグループ
SELECT
YEAR(date_time) AS Year,
count(x) AS Count
FROM mytable
GROUP BY year WITH ROLLUP
戻る(予想通り)
Year Count
---- -----
2015 3
2016 2
NULL 5
をNULL値を文字列で置き換えます。しかし、上記のクエリに同じロジックを適用すると、動作しないようです。
SELECT
COALESCE(YEAR(date_time), 'moo') AS Year,
count(x) AS Count
FROM mytable
GROUP BY year WITH ROLLUP
または
SELECT
IFNULL(YEAR(date_time), 'moo') AS 'year',
count(x) AS Count
FROM mytable
GROUP BY year WITH ROLLUP
戻り代わりに期待
Year Count
---- -----
2015 3
2016 2
moo 5
の
Year Count
---- -----
2015 3
2016 2
NULL 5
任意のアイデア、提案?
この質問はほとんど意味がありません。なぜなら、GROUP BYで使用されている集計関数がないからです。 –
私の質問の中心に来るために最低限必要な質問をまとめたので、 –
代表的なサンプルを表示する必要があります。ロールアップがないので、あなたが上で与えたことは意味をなさない。 –