2011-10-27 14 views
5

मैं अपने डेटा को वर्ष-दर-साल समूहबद्ध करना चाहता हूं लेकिन सप्ताह रविवार को यहां शुरू होता है। सोमवार से सोमवार तक मैं अपने सप्ताह को कैसे समूहीकृत कर सकता हूं?सोमवार से रविवार तक mysql सप्ताह

SELECT YEARWEEK(dateStats) k,dateStats udate, COUNT(f_shop) sales 
FROM sal_import WHERE dateStats BETWEEN "2011-08-15" AND "2011-08-21" GROUP BY YEARWEEK(dateStats) 

के बीच रविवार तक सोमवार से एक तारीख है और मैं परिणाम पर सिर्फ एक पंक्ति की जरूरत है:

यहाँ मेरी क्वेरी है। WEEK(date[,mode]) समारोह में तरह -

आप

+0

मुझे लगता है कि यह एक डुप्लिकेट है: http://stackoverflow.com/questions/1202919/mysql-dayofweek-my-week-begins-with-monday – Moyshe

+0

@Moyshe No - यह नहीं है। – hsz

उत्तर

18

YEARWEEK(date[,mode]) का दूसरा तर्क बहुत ज्यादा समारोह mode है धन्यवाद।

आप प्रारंभ दिवस निर्दिष्ट कर सकते हैं - डिफ़ॉल्ट 0 (Sunday) है।

बस 1 (Monday) के लिए सेट:

YEARWEEK(dateStats, 1) 
+0

बहुत गुग, धन्यवाद! – user954740

+0

यह वास्तव में शानदार तरीका है, इस प्रकार की समस्या मुझे कभी-कभी परेशान करती है – zhihong

0

आप इस उद्देश्य के लिए एक वैश्विक चर सेट कर सकते हैं:

More Info

आप आलसी हैं, तो यह है

--default_week_format=1 
+0

दुर्भाग्य से नहीं। [यह बग] (http://bugs.mysql.com/bug.php?id=30454) के कारण यह संभव नहीं है। –

0

मैं करूंगा इस प्रकार के काम के लिए दिनांक आयाम का उपयोग करने की सलाह दें। यह आपको "सप्ताहांत", "सप्ताहांत", "सप्ताह संख्या", "वित्तीय तिमाही", आदि जैसे विभिन्न गुणों को निर्दिष्ट करने की अनुमति देता है।

अधिक जानकारी के लिए निम्नलिखित प्रश्न का मेरा उत्तर देखें;

Select all months within given date span, including the ones with 0 values

उसके बाद, आप कॉलम विभिन्न वर्ष सप्ताह प्रकार मान दोनों के साथ, आदि

बनाने आयाम तालिका के लिए अपने डेटा में शामिल होने, और सेटिंग्स को बदलने के बिना उनमें से या तो के लिए परिणाम उत्पन्न कर सकते

उम्मीद है कि इससे आपको कुछ हद तक मदद मिलेगी!

संबंधित मुद्दे