私はテーブルUsers
を持っています。私は次のクエリでそれからいくつかのデータをつかむためにアウトしようとしています:複数のSQLクエリをマージする方法
select name, lastname, gender, status, count(status = 'Trvl') as TrvlCount,
count(status != 'Trvl') as NotTrvlCount, count(id) as TotalCount
from Users
group by name, lastname, gender, dob;
期待される結果が一意の名前、姓、性別、生年月日(重複を避けるため)と異なるステータスの合計で7列になります。しかし、私はなぜ3つのカウントの列が同じ値または同じ合計値を表示しているのかを修正できませんか?
アイデアはありますか?前もって感謝します。
一般的なGROUP BYルールは次のとおりです。「GROUP BY句が指定されている場合、SELECTリストの各列参照は、グループ化列を特定するか、または集合関数の引数でなければなりません。私。私は '名前、姓、性別、ステータスでグループ化してみよう。 – jarlh
でも同じ結果が得られます – vellattukudy
COUNTは行数をカウントし、それらの条件に一致する行の数をカウントしようとしている場合はSUMを試します(TRUEは1、FALSEは0に等しいからです) – golimar