मेरा सुझाव है date_trunc()
बजाय। यह date
. को छोटा कर देता है / timestamp
दी गई इकाई के लिए।
दो कारणों से:
-
आप किसी विशेष वर्ष के अगस्त में ऑर्डर की संख्या चाहते हैं, जैसे 2012, नहीं तालिका में सभी वर्षों के अगस्त के लिए योग।
date_trunc('month', orderdate)
ठीक यही करता है और रोकता है कि आप दुर्घटना से कई वर्षों को मिलाते हैं। आपको कई वर्षों के लिए कई पंक्तियाँ मिलती हैं। -
आप दोनों
ORDER BY
. कर सकते हैं औरGROUP BY
यह एक अभिव्यक्ति, क्वेरी थोड़ी तेज है।
SELECT to_char(date_trunc('month', orderdate), 'Mon') AS "Month" -- repeat expr.
,count(*) AS "Quantity"
FROM orders
GROUP BY date_trunc('month', orderdate) -- 1 item covers it
ORDER BY date_trunc('month', orderdate);
db<>fiddle यहां
पुराना sqlfiddle
उप>
पूरे महीने के नामों के लिए, जैसे आपका पहला उदाहरण दर्शाता है:
to_char(date_col, 'Month')
गैर-अंग्रेज़ी, स्थानीय नामों के लिए:
to_char(date_col, 'TMMonth')