私はオラクルをあまり知りません。最近、PHP/MySQLで作成されたアプリケーションをPHP/Oracleに移行する必要がありました。Doctrine2を使用していたので、それほど難しいことではないと思いましたが、ここでこのクエリに行き詰まっています。これはDoctrine2によって生成されたSQLです:
SELECT a.*
FROM
(SELECT b0_.id AS id0,
b0_.created AS created1,
b1_.businessName AS businessName2,
b1_.isVerified AS isVerified3,
COUNT(b2_.id) AS sclr4
FROM br_merchants b1_
INNER JOIN br_user b0_
ON b1_.id = b0_.id
LEFT JOIN br_campaigns b2_
ON b1_.id = b2_.merchant_id
GROUP BY b0_.id,
b0_.created,
b1_.businessName,
b1_.isVerified
ORDER BY b2_.created DESC
) a
WHERE ROWNUM <= 10
そして、私は得てORA-00979: not a GROUP BY expression
います。groupbyステートメントの集計関数で使用されていないすべての列を指定する必要があることをどこかで読みました。私はそうしましたが、結果は同じです。
誰かが私がどこで間違っているのか教えてもらえますか?ありがとう!
編集:ORDER BY 2 DESC
SQL Developerで実行しましたが、クエリビルダーは2を使用しません。Doctrine2クエリビルダーでどのように実行しますか。