私は奇妙なエラーが発生しています。SUM()すべての結果(group by節なし)
SELECT
adverse_reaction_type_id,
SUM(CASE adverse_reaction_type_id WHEN 1 THEN `number` ELSE 0 END) line,
SUM(CASE adverse_reaction_type_id WHEN 2 THEN `number` ELSE 0 END) drug
FROM
core_reports_adverse_reactions,
...
WHERE
...
これは私のMAMPのインストールで正常に動作しますが、私のリモートサーバー上にない:私は次のようになりますSQLコードを持っています。私はそこに設定オプションがどこかで動作して停止していると仮定します。
この
は私が取得していますエラーです:GROUP列のミキシング(MIN()、MAX()、COUNT()、...)なしGROUP 列を持つがある場合は違法です句
BY何GROUPは、私はエラーが私に言っているのか分からないが、問題は、私は何もして、グループにしたくないということです。すべての結果を得るには、whereビット(簡潔にするために上記で削除されたもの)が一致してから、列のSUM()
を返します(CASE
節に基づいてline
またはdrug
として)。
ので、基本的にかかわらず、はWHERE
句でにマッチしているものの私は返すようにしたいすべてが行です:
line | drug
-----------
10 | 32
がすべてでこれを回避する方法はありますか?または私はGROUP BY nothing
または何かできる何か?
これは部分的な回答にすぎないので、このエラーは 'ONLY_FULL_GROUP_BY' SQLモードが有効な場合にのみ発生します([http://dev.mysql.com/doc/refman/5.6/ en/group-by-hidden-columns.html](http://dev.mysql.com/doc/refman/5.6/ja/group-by-hidden-columns.html))、あなたのMAMPインストールの違いあなたのリモートサーバはあなたのMAMPインストールでSQLモードを有効にしていないかもしれません。 – ruakh