我有一個客戶訂單表,該表類似於下面:檢查特定的ID的出現一行之前在表
order_id | customer_id | date | ...
-----------------------------------------
583 192 2015-05-01 ...
734 143 2015-06-04 ...
801 455 2015-07-02 ...
... ... ... ...
我想找到我多少新客戶獲得在特定的月份 。通過查詢上面的訂單表並找到當月出現但在該月之前沒有出現的值(在該月之後沒有問題),可以找到新客戶。我正在尋找新的customer_id
的第一個實例。
有沒有辦法在一個SQL語句中做到這一點?我可以做類似下面我想:
- 通過查詢使用
LIKE YYYY-MM-%
- 檢查表與
customer_id
實例較小order_id
(按理說一個較小的數據庫得到了一個月的所有order_id
和DISTINCT customer_id
order_id
將早期命令) - 如果找到,則跳過
- 如果沒有找到,遞增計數器
哪個db引擎? – user2407394
你想要獨特的用戶,你不需要循環所有的結果只是使用group by並獲得唯一的結果。同樣,你只是數它們,所以如果你計算第一個或後一個數,那麼它確實沒有什麼區別,只需要計數獨特的數。 –