2011-02-24 30 views
1

這是參考尚未解決的問題here - 我想嘗試以不同的方式處理它。MySQL比較當前行之前的日期範圍內的數據並計數()他們

我有一個MySQL表中有兩條信息:order_dateemail_address。這是詳盡無遺的,這意味着如果某人偶爾每天進行一次以上購買,則會有重複。

我需要得到下面的報告中儘可能少的查詢成爲可能,希望有:

YYYY-MM | number_emails_this_month | numer_emails_repeated_prior 

如果從查詢結果的輸出情況是這樣的:

YYYY-MM | number_emails_this_month | numer_emails_repeated_prior 
2010-02  23423    1231 
2010-03  4422    2234 
2010-04  1424    650 

任何幫助非常感謝!

+0

這是樣本輸出,而不是樣本數據是否正確? – 2011-02-24 06:51:47

+0

正確,抱歉 - 將改正問題 – philwinkle 2011-02-24 06:52:25

回答

0

這個問題在這裏後續相關的問題回答說:

MySQL Subquery with User-Defined Variables

最終的解決方案是創建一個表範圍的請求,並加入上而不是使用子查詢來確定有問題的範圍。回想起來,在MySQL中使用用戶定義的變量幫助搜索子查詢少的解決方案。

0

我不確定我瞭解什麼是number_emails_repeated_prior。如果您可以發佈一個簡短的數據示例以及相應的想要的結果示例,那將會很有幫助。

以一個約你的目標是什麼,爲每月從所有你需要一個特定的用戶收到的電子郵件數量的猜測是:

SELECT DATE_FORMAT(order_date, '%Y-%m') as `YYYY-MM`, 
     COUNT(email_address) as `number_emails_this_month ` 
FROM table_name 
WHERE email_address = '[email protected]' 
GROUP BY 1 
ORDER BY 1 
+0

問題是,我該如何結合查詢,*和*該查詢中的人數與其他任何上個月的人數,僅返回那些相交的人數。 – philwinkle 2011-02-27 02:39:31

+0

另外,如果您在頂部看到未解決的問題 - 您會看到您請求的示例數據... – philwinkle 2011-02-27 02:51:14

相關問題