2016-06-21 71 views
1

我試圖請求我的數據庫獲取特定登錄名從最近6個月起按周排序的行數。自去年6個月起每週要求mysql請求

輸出必須是這樣的:

enter image description here

我的要求是這樣的:

SELECT count(*) FROM table1 where (`EndDate` BETWEEN DATE_SUB(CURDATE(), INTERVAL 6 MONTH) and CURDATE()) AND the_login LIKE 'LOGIN 1'; 

它顯示最後6每月行現在。 您是否可以完成我的請求或在需要時進行更改?

回答

2

您可以使用YEAR()WEEK()從日期中提取它們,並按它們分組。

請注意,我並沒有僅使用WEEK,因爲它不夠,如果您在六月之前執行此操作,可能會誤解數週。

此外,請勿使用LIKE進行完全匹配,請僅將它們用於部分比較。

SELECT YEAR(t.endDate) as m_Year, WEEK(t.endDate) as m_Week, count(*) 
FROM table1 t 
where t.`EndDate` BETWEEN DATE_SUB(CURDATE(), INTERVAL 6 MONTH) 
         and CURDATE()) 
    AND t.the_login = 'LOGIN 1' 
GROUP BY m_Year,m_Week 
+0

非常感謝!它像一個魅力。 –

+0

@ R.co記得標記爲答案,所以其他人可以很容易地看到它 – Pepys

+1

是的,我知道,我只需要等待2分鐘^ _ ^ –