मैं SELECT
कथन GROUP BY
खंड के साथ बनाने का प्रयास कर रहा हूं, जिसे "डिफ़ॉल्ट मान" वापस करना चाहिए।"डिफ़ॉल्ट मान" के साथ SQL ग्रुप BY
निम्नलिखित सरल MySQL तालिका कल्पना कीजिए:
CREATE TABLE `tracker` (
`id` INTEGER PRIMARY KEY auto_increment,
`date` DATETIME NOT NULL,
`customer_id` INTEGER NOT NULL
);
तालिका केवल एक ही रिकॉर्ड में शामिल हैं:
INSERT INTO `tracker` (`date`, `customer_id`) VALUES('2010-05-03', 1);
वार्डों मैं निम्नलिखित SQL क्वेरी को क्रियान्वित कर रहा हूँ के बाद:
SELECT DATE(`date`), COUNT(customer_id) FROM tracker
WHERE DATE(`date`) >= '2010-05-01' AND DATE(`date`) <= '2010-05-05'
GROUP BY DATE(`date`) ORDER BY DATE(`date`);
और अपेक्षित परिणाम सेट प्राप्त करें:
+--------------+--------------------+
| DATE(`date`) | COUNT(customer_id) |
+--------------+--------------------+
| 2010-05-01 | 0 |
| 2010-05-02 | 0 |
| 2010-05-03 | 1 |
| 2010-05-04 | 0 |
| 2010-05-05 | 0 |
+--------------+--------------------+
यह इस व्यवहार को प्राप्त करना संभव है:
+----+---------------------+-------------+
| id | date | customer_id |
+----+---------------------+-------------+
| 1 | 2010-05-10 00:00:00 | 1 |
+----+---------------------+-------------+
हालांकि, मैं परिणाम इस तरह देखने के लिए सेट चाहते हैं?
पर परिणाम पर एक
group by
, याgroup by
कर करो इस विषय के साथ बहुत सारे डुप्लिकेट हैं, उदाहरण के लिए http://stackoverflow.com/questions/400759/sql-group-by-date-but-get-dates-wo-rec ords भी – Unreason