एक अनुक्रमणिका केवल वास्तविक पंक्तियों को अनुक्रमित कर सकती है, एकत्रित पंक्तियों को नहीं। तो, हाँ, जहाँ तक वांछित सूचकांक जाता है, आपके द्वारा बताए गए अद्वितीय मूल्यों के साथ एक तालिका बनाना ही आपका एकमात्र विकल्प है। data.day
. से एक विदेशी कुंजी बाधा के साथ संदर्भात्मक अखंडता लागू करें से days.day
. तक . यह हो सकता है पूरी स्थिति के आधार पर प्रदर्शन के लिए भी सर्वश्रेष्ठ हो।
हालांकि, चूंकि यह प्रदर्शन . के बारे में है , एक वैकल्पिक समाधान है:आप एक ढीली अनुक्रमणिका स्कैन का अनुकरण करने के लिए पुनरावर्ती CTE का उपयोग कर सकते हैं:
WITH RECURSIVE cte AS (
( -- parentheses required
SELECT day FROM data ORDER BY 1 LIMIT 1
)
UNION ALL
SELECT (SELECT day FROM data WHERE day > c.day ORDER BY 1 LIMIT 1)
FROM cte c
WHERE c.day IS NOT NULL -- exit condition
)
SELECT day FROM cte;
पहले SELECT
. के आसपास कोष्ठक संलग्न ORDER BY
. के कारण आवश्यक हैं और LIMIT
खंड। देखें:
इसके लिए केवल day
. पर एक सादे अनुक्रमणिका की आवश्यकता होती है ।
आपके वास्तविक प्रश्नों के आधार पर विभिन्न प्रकार हैं:
- प्रति उपयोगकर्ता नवीनतम पंक्ति प्राप्त करने के लिए क्वेरी द्वारा समूह को अनुकूलित करें
- तारीखों की श्रेणी में अप्रयुक्त अनुक्रमणिका
- पहले चुनें प्रत्येक ग्रुप बाय ग्रुप में पंक्ति?
आपके अनुवर्ती प्रश्न के मेरे उत्तर में और अधिक: