請參閱下面的SQL查詢,它工作正常。它計算我要排除WHERE
爲Sales
場的是,不是,其他數量和匹配的手機號碼[銷售領域(D.MobileNo = S.mobile
)的數量SQL查詢 - 如何排除特定字段的WHERE
SELECT D.Username,
SUM(CASE WHEN D.type = 'Yes' THEN 1 ELSE 0 END) as Yes,
SUM(CASE WHEN D.type = 'Not' THEN 1 ELSE 0 END) as Not,
SUM(CASE WHEN D.type = '' THEN 1 ELSE 0 END) as Other,
SUM(CASE WHEN S.mobile IS NULL THEN 0 ELSE 1 END) as Sales,
COUNT(*) as TOTAL
FROM dairy as D
LEFT JOIN (SELECT DISTINCT mobile FROM sales) as S on D.MobileNo = S.mobile
WHERE source = 'Network'
AND UNIX_TIMESTAMP(CheckDate) >= 1309474800
AND UNIX_TIMESTAMP(CheckDate) <= 1311894000
GROUP BY D.Username
ORDER BY TOTAL DESC
- 它不應該是從CheckDate
一部分。這意味着它應該檢查dairy
表中的任何記錄,而字段中的CheckDate
。
如何做到這一點?
原始查詢編寫第二查詢。詳細說明:在哪裏進行評估,以便您可以使用精簡的剩餘部分進行處理。要「排除」銷售的地方,意味着rdbms必須重新考慮哪些行要從表中移出。 – Jacob
@cularis你如何從我的例子中做到這一點? –
你是什麼意思?只需在這裏複製該查詢,刪除不需要的字段並在其中刪除日期內容。 – Jacob