इस सवाल से प्रेरित था यह एक [बंद कर दिया] और लगभग इस के समान है एक लेकिन अलग RDBMS का उपयोग (PostgreSQL बनाम MySQL)।
मान लीजिए कि मेरे पास ट्यूमर की सूची है (यह डेटा वास्तविक डेटा से सिम्युलेटेड है):
CREATE table illness (nature_of_illness VARCHAR(25), created_at DATETIME);
INSERT INTO illness VALUES ('Cervix', '2018-01-03 15:45:40');
INSERT INTO illness VALUES ('Cervix', '2018-01-03 15:45:40');
INSERT INTO illness VALUES ('Cervix', '2018-01-03 15:45:40');
INSERT INTO illness VALUES ('Cervix', '2018-01-03 15:45:40');
INSERT INTO illness VALUES ('Cervix', '2018-01-03 15:45:40');
INSERT INTO illness VALUES ('Lung', '2018-01-03 17:50:32');
INSERT INTO illness VALUES ('Lung', '2018-02-03 17:50:32');
INSERT INTO illness VALUES ('Lung', '2018-02-03 17:50:32');
INSERT INTO illness VALUES ('Lung', '2018-02-03 17:50:32');
INSERT INTO illness VALUES ('Cervix', '2018-02-03 17:50:32');
-- 2017, with 1 Cervix and Lung each for the month of Jan - tie!
INSERT INTO illness VALUES ('Cervix', '2017-01-03 15:45:40');
INSERT INTO illness VALUES ('Lung', '2017-01-03 17:50:32');
INSERT INTO illness VALUES ('Lung', '2017-02-03 17:50:32');
INSERT INTO illness VALUES ('Lung', '2017-02-03 17:50:32');
INSERT INTO illness VALUES ('Lung', '2017-02-03 17:50:32');
INSERT INTO illness VALUES ('Cervix', '2017-02-03 17:50:32');
आप यह पता लगाना चाहते हैं कि दिए गए महीने में कौन सा विशेष ट्यूमर सबसे आम था - अब तक बहुत अच्छा!
अब, आप देखेंगे कि 2017 के 1 महीने के लिए, एक टाई है - तो यह कोई मतलब नहीं है कि जो कोई भी बेतरतीब ढंग से एक लेने के लिए और जवाब के रूप में दे - ताकि संबंधों को शामिल किया जाए - यह समस्या को और अधिक चुनौतीपूर्ण बनाता है।
सही जवाब है:
Year Month Tumour count Type
2017 1 1 Cervix -- note tie
2017 1 1 Lung -- " "
2017 2 3 Lung
2018 1 5 Cervix
2018 2 3 Lung
महीने के नाम को पूर्णांक के बजाय पाठ के रूप में प्रकट करने के लिए एक और बोनस होगा।
मेरे पास एक समाधान है, लेकिन यह काफी जटिल है - मैं जानना चाहता हूं कि मेरा समाधान इष्टतम है या नहीं। MySQL फिडेल यहाँ है !