2013-05-12 15 views
4

比方說,我有一個訂單表與字段: user_id,created_at。如何計算SQL中項目的新外觀?

我想創建一個查詢,顯示每天出現多少個新用戶ID。

這說明多少訂單有每天:

SELECT 
    count(1), TO_CHAR(created_at, 'YYYY-MM-DD') as day 
FROM 
    orders 
GROUP BY 
    day 
ORDER BY 
    day DESC 
+0

所以這是MySQL的我猜? (因爲它允許在「分組依據」中使用列別名,大多數不會) – RBarryYoung 2013-05-12 16:43:04

+0

@JW웃 - [Postgres具有'TO_CHAR'功能](http://www.postgresql.org/docs/9.2/ interactive/functions-formatting.html)。 – 2013-05-12 16:53:49

+0

哦,我的壞。我只知道postgresql中的少量功能。 – 2013-05-12 16:58:36

回答

3
SELECT count(1), 
     TO_CHAR(FirstOrder, 'YYYY-MM-DD') AS day 
FROM (SELECT MIN(created_at) AS FirstOrder, 
       user_id 
     FROM orders 
     GROUP BY user_id) first_orders 
GROUP BY TO_CHAR(FirstOrder, 'YYYY-MM-DD') 
ORDER BY day DESC 
+0

這正是我一直在尋找的東西。謝謝你,馬丁! – 2013-05-13 19:59:29