Ravindra BagaleCourses & study guides Track your progress

9. Analysts साठी Date आणि Time queries

9.4 Date column वर function लावल्यास नंतर query हळू का होऊ शकते

का (Why). 25 rows वर पटकन चालणारी query 2.5 कोटी rows वर खूप हळू होऊ शकते. आत्ताच्या चांगल्या सवयी नंतर उपयोगी पडतात.

काय (What). Index म्हणजे पुस्तकाच्या शेवटच्या अनुक्रमणिकेसारखा. तो database ला जुळणाऱ्या rows वर थेट जायला मदत करतो. posted_at >= '2026-01-01' सारखी साधी range posted_at वरचा index वापरू शकते, पण strftime('%Y', posted_at) = '2026' सहसा वापरू शकत नाही, कारण आधी प्रत्येक row वर function चालवावं लागतं. SQLite मध्ये YEAR() function नाही, म्हणून इथे ते काम strftime() करतं.

कसं (How). एकच year filter दोन प्रकारे लिहा आणि दोन्हीचं उत्तर सारखं येतं याची खात्री करा. Range वाली पद्धत वापरा.

पायऱ्या

  1. पहिलं उदाहरण run करा, त्यात column strftime() मध्ये गुंडाळला आहे.
  2. दुसरं उदाहरण run करा, त्यात साधी range वापरली आहे.
  3. दोन्ही counts सारखे आहेत ते तपासा.
  4. Shared reports मध्ये range पद्धत वापरा, कारण table मोठं झालं तरी ती पटकन चालते.

उदाहरणे

उदाहरण 1 · dataset: northstar_bank

SELECT COUNT(*) AS rows_2026
FROM transactions
WHERE strftime('%Y', posted_at) = '2026';

Output

rows_2026
25

Meaning. सगळे 25 rows 2026 मधले आहेत. उत्तर बरोबर आहे, पण function प्रत्येक row वर चालतं.

उदाहरण 2 · dataset: northstar_bank

SELECT COUNT(*) AS rows_2026
FROM transactions
WHERE posted_at >= '2026-01-01'
  AND posted_at <  '2027-01-01';

Output

rows_2026
25

Meaning. Range ने तेच 25 rows मिळतात, आणि मोठ्या table मध्ये ती posted_at वरचा index वापरू शकते.

Ravindra Bagale's Tip

Keep the column alone on one side of the comparison, and put the calculation on the value side.