-3
我想總結一下場,如果條件字段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
表達
SELECT COUNT(DISTINCT CASE WHEN pu.app_id=1 THEN pu.field_id END)
返回NULL待條件成熟時,我們要AREN測試」不滿意,否則返回表達式(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