1

レコードをカウントするための単純なクエリだと思っていたものに問題があります。

SELECT req_ownerid, count(req_status_lender) AS total6 
FROM bor_requests
WHERE (req_status_lender = 0 AND req_status_borrower = 0) OR 
      (req_status_lender = 1 AND req_status_borrower = 1)
GROUP BY req_ownerid 
HAVING req_ownerid = 70

これにより、(req_status_lender = 0 AND req_status_borrower = 0)および(req_status_lender = 1 AND req_status_borrower = 1)のすべてのレコードがカウントされ、合計が得られると思いましたが、(req_status_lender = 0 AND req_status_borrower = 0)または(req_status_lender = 1 AND req_status_borrower = 1)。

私が間違っていることについて何か考えはありますか?

4

1 に答える 1

2

この句は、上記のクエリで集計されたものを制限するためにのみ使用する必要があります。たとえば、またはが5より大きいHAVING行をすべて選択する場合は、次を使用します。SUM(....)COUNT(...)HAVING SUM(...) > 5

ここで行っているのは標準WHERE句です。そこに追加してください。

SELECT req_ownerid, count(req_status_lender) AS total6 
FROM bor_requests
WHERE req_ownerid = 70
      AND ((req_status_lender = 0 AND req_status_borrower = 0) OR 
           (req_status_lender = 1 AND req_status_borrower = 1))
GROUP BY req_ownerid 
于 2011-02-06T10:49:22.120 に答える