私は条件フィールドIDは、私はいくつかのために、これはケーキのちょうど一部である知っている、それが唯一の1としてカウントされます複製し、アプリケーションIDが1有効な構文クエリは何ですか?
SELECT SUM(IF(PU.field_id IS DISTINCT AND PU.app_id =1,1,0)) as "With Reco" FROM tbl.PutUser.
に等しいであれば、フィールドを合計しようとしています。
私は条件フィールドIDは、私はいくつかのために、これはケーキのちょうど一部である知っている、それが唯一の1としてカウントされます複製し、アプリケーションIDが1有効な構文クエリは何ですか?
SELECT SUM(IF(PU.field_id IS DISTINCT AND PU.app_id =1,1,0)) as "With Reco" FROM tbl.PutUser.
に等しいであれば、フィールドを合計しようとしています。
私たちは、MySQL固有のIF()
機能を使用することができ、
SELECT COUNT(DISTINCT IF(pu.app_id=1,pu.field_id,NULL)) AS `With Reco`
FROM mytable pu
または同等の、より多くのANSI規格に準拠しCASE
表現の条件は、我々がARENテストしたいとき
SELECT COUNT(DISTINCT CASE WHEN pu.app_id=1 THEN pu.field_id END)
はNULLを返すように」条件が満たされたときの別個の値のカウントを取得したいという式(field_id
)を返す。次に、COUNT(DISTINCT)
集計で式をラップすることができます。テストのために
、COUNT(DISTINCT)集計を削除し、個々の行を返す...
SELECT pu.app_id
, pu.field_id
, IF(pu.app_id=1,pu.field_id,NULL) AS foo
FROM mytable pu
ORDER BY ...
LIMIT 80
あなたが求めているものの私の最高の理解です。
app_id field_id foo
------ -------- -----
1 sam sam
0 sam NULL
1 sam sam
2 bob NULL
NULL bugs NULL
これはあなたが求めているものではない場合、いくつかのサンプルデータとクエリの予想される出力を提供することを検討してください。
完璧な、まさに私が探していたもの。 –
サンプルデータと希望の結果で別の質問をしてください。 –
サンプルデータと期待される出力は、達成しようとしていることをよりよく説明します。 – spencer7593