ಕನ್ನಡ

ವಿಂಡೋ ಫಂಕ್ಷನ್‌ಗಳೊಂದಿಗೆ ಟೈಮ್ ಸೀರೀಸ್ ಡೇಟಾದ ಶಕ್ತಿಯನ್ನು ಅನ್ಲಾಕ್ ಮಾಡಿ. ಈ ಮಾರ್ಗದರ್ಶಿ ಡೇಟಾ ವಿಶ್ಲೇಷಣೆಗಾಗಿ ಅಗತ್ಯ ಪರಿಕಲ್ಪನೆಗಳು, ಪ್ರಾಯೋಗಿಕ ಉದಾಹರಣೆಗಳು ಮತ್ತು ಸುಧಾರಿತ ತಂತ್ರಗಳನ್ನು ಒಳಗೊಂಡಿದೆ.

ಟೈಮ್ ಸೀರೀಸ್ ಅನಾಲಿಟಿಕ್ಸ್: ಡೇಟಾ ಒಳನೋಟಗಳಿಗಾಗಿ ವಿಂಡೋ ಫಂಕ್ಷನ್‌ಗಳನ್ನು ಕರಗತ ಮಾಡಿಕೊಳ್ಳುವುದು

ಟೈಮ್ ಸೀರೀಸ್ ಡೇಟಾ, ತನ್ನ ಅನುಕ್ರಮ ಮತ್ತು ಸಮಯ-ಅವಲಂಬಿತ ಸ್ವಭಾವದಿಂದ ಗುರುತಿಸಲ್ಪಟ್ಟಿದೆ, ಇದು ಉದ್ಯಮಗಳಾದ್ಯಂತ ಸರ್ವತ್ರವಾಗಿದೆ. ಸ್ಟಾಕ್ ಬೆಲೆಗಳನ್ನು ಟ್ರ್ಯಾಕ್ ಮಾಡುವುದರಿಂದ ಮತ್ತು ವೆಬ್‌ಸೈಟ್ ಟ್ರಾಫಿಕ್ ಅನ್ನು ಮೇಲ್ವಿಚಾರಣೆ ಮಾಡುವುದರಿಂದ ಹಿಡಿದು, ಸೆನ್ಸರ್ ರೀಡಿಂಗ್‌ಗಳನ್ನು ವಿಶ್ಲೇಷಿಸುವುದು ಮತ್ತು ಮಾರಾಟದ ಪ್ರವೃತ್ತಿಗಳನ್ನು ಮುನ್ಸೂಚಿಸುವವರೆಗೆ, ಟೈಮ್ ಸೀರೀಸ್ ಡೇಟಾದಿಂದ ಅರ್ಥಪೂರ್ಣ ಒಳನೋಟಗಳನ್ನು ಹೊರತೆಗೆಯುವ ಸಾಮರ್ಥ್ಯವು ತಿಳುವಳಿಕೆಯುಳ್ಳ ನಿರ್ಧಾರ-ತೆಗೆದುಕೊಳ್ಳುವಿಕೆಗೆ ನಿರ್ಣಾಯಕವಾಗಿದೆ. ವಿಂಡೋ ಫಂಕ್ಷನ್‌ಗಳು ಟೇಬಲ್ ಅಥವಾ ಡೇಟಾ ಫ್ರೇಮ್‌ನಲ್ಲಿ ಪ್ರಸ್ತುತ ಸಾಲಿಗೆ ಸಂಬಂಧಿಸಿದ ಸಾಲುಗಳ ಗುಂಪಿನಾದ್ಯಂತ ಲೆಕ್ಕಾಚಾರಗಳನ್ನು ನಿರ್ವಹಿಸಲು ಶಕ್ತಿಯುತ ಮತ್ತು ಹೊಂದಿಕೊಳ್ಳುವ ಟೂಲ್‌ಸೆಟ್ ಅನ್ನು ಒದಗಿಸುತ್ತವೆ, ಇದು ಟೈಮ್ ಸೀರೀಸ್ ವಿಶ್ಲೇಷಣೆಗೆ ಅನಿವಾರ್ಯವಾಗಿದೆ.

ಟೈಮ್ ಸೀರೀಸ್ ಡೇಟಾವನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವುದು

ಟೈಮ್ ಸೀರೀಸ್ ಡೇಟಾವು ಕಾಲಾನುಕ್ರಮದಲ್ಲಿ ಸೂಚಿಸಲಾದ ಡೇಟಾ ಪಾಯಿಂಟ್‌ಗಳ ಅನುಕ್ರಮವಾಗಿದೆ. ಡೇಟಾ ಪಾಯಿಂಟ್‌ಗಳು ವಿವಿಧ ಮೆಟ್ರಿಕ್‌ಗಳನ್ನು ಪ್ರತಿನಿಧಿಸಬಹುದು, ಉದಾಹರಣೆಗೆ:

ಟೈಮ್ ಸೀರೀಸ್ ಡೇಟಾವನ್ನು ವಿಶ್ಲೇಷಿಸುವುದು ಮಾದರಿಗಳು, ಪ್ರವೃತ್ತಿಗಳು ಮತ್ತು ಕಾಲೋಚಿತತೆಯನ್ನು ಗುರುತಿಸುವುದನ್ನು ಒಳಗೊಂಡಿರುತ್ತದೆ, ಇದನ್ನು ಭವಿಷ್ಯದ ಮೌಲ್ಯಗಳನ್ನು ಮುನ್ಸೂಚಿಸಲು, ವೈಪರೀತ್ಯಗಳನ್ನು ಪತ್ತೆಹಚ್ಚಲು ಮತ್ತು ವ್ಯವಹಾರ ಪ್ರಕ್ರಿಯೆಗಳನ್ನು ಅತ್ಯುತ್ತಮವಾಗಿಸಲು ಬಳಸಬಹುದು.

ವಿಂಡೋ ಫಂಕ್ಷನ್‌ಗಳಿಗೆ ಪರಿಚಯ

ವಿಂಡೋ ಫಂಕ್ಷನ್‌ಗಳು, ವಿಂಡೋಡ್ ಅಗ್ರಿಗೇಟ್ಸ್ ಅಥವಾ ಅನಾಲಿಟಿಕ್ ಫಂಕ್ಷನ್‌ಗಳು ಎಂದೂ ಕರೆಯಲ್ಪಡುತ್ತವೆ, ಸಾಂಪ್ರದಾಯಿಕ ಅಗ್ರಿಗೇಟ್ ಫಂಕ್ಷನ್‌ಗಳಂತೆ (ಉದಾ., SUM, AVG, COUNT) ಸಾಲುಗಳನ್ನು ಒಂದೇ ಫಲಿತಾಂಶದ ಗುಂಪಿಗೆ ಸೇರಿಸದೆ, ಪ್ರಸ್ತುತ ಸಾಲಿಗೆ ಸಂಬಂಧಿಸಿದ ಸಾಲುಗಳ ಗುಂಪಿನ ಮೇಲೆ ಲೆಕ್ಕಾಚಾರಗಳನ್ನು ಮಾಡಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತವೆ. ಈ ಸಾಮರ್ಥ್ಯವು ಟೈಮ್ ಸೀರೀಸ್ ವಿಶ್ಲೇಷಣೆಗೆ ವಿಶೇಷವಾಗಿ ಉಪಯುಕ್ತವಾಗಿದೆ, ಅಲ್ಲಿ ನೀವು ಆಗಾಗ್ಗೆ ಮೂವಿಂಗ್ ಸರಾಸರಿಗಳು, ಸಂಚಿತ ಮೊತ್ತಗಳು ಮತ್ತು ಇತರ ಸಮಯ-ಆಧಾರಿತ ಮೆಟ್ರಿಕ್‌ಗಳನ್ನು ಲೆಕ್ಕಾಚಾರ ಮಾಡಬೇಕಾಗುತ್ತದೆ.

ಒಂದು ವಿಂಡೋ ಫಂಕ್ಷನ್ ಸಾಮಾನ್ಯವಾಗಿ ಈ ಕೆಳಗಿನ ಅಂಶಗಳನ್ನು ಒಳಗೊಂಡಿರುತ್ತದೆ:

  1. ಫಂಕ್ಷನ್: ನಿರ್ವಹಿಸಬೇಕಾದ ಲೆಕ್ಕಾಚಾರ (ಉದಾ., AVG, SUM, RANK, LAG).
  2. OVER ಕ್ಲಾಸ್: ಲೆಕ್ಕಾಚಾರಕ್ಕಾಗಿ ಬಳಸಲಾಗುವ ಸಾಲುಗಳ ವಿಂಡೋವನ್ನು ವ್ಯಾಖ್ಯಾನಿಸುತ್ತದೆ.
  3. PARTITION BY ಕ್ಲಾಸ್ (ಐಚ್ಛಿಕ): ಡೇಟಾವನ್ನು ವಿಭಾಗಗಳಾಗಿ ವಿಭಜಿಸುತ್ತದೆ, ಮತ್ತು ವಿಂಡೋ ಫಂಕ್ಷನ್ ಅನ್ನು ಪ್ರತಿ ವಿಭಾಗಕ್ಕೆ ಸ್ವತಂತ್ರವಾಗಿ ಅನ್ವಯಿಸಲಾಗುತ್ತದೆ.
  4. ORDER BY ಕ್ಲಾಸ್ (ಐಚ್ಛಿಕ): ಪ್ರತಿ ವಿಭಾಗದೊಳಗಿನ ಸಾಲುಗಳ ಕ್ರಮವನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸುತ್ತದೆ.
  5. ROWS/RANGE ಕ್ಲಾಸ್ (ಐಚ್ಛಿಕ): ವಿಂಡೋ ಫ್ರೇಮ್ ಅನ್ನು ವ್ಯಾಖ್ಯಾನಿಸುತ್ತದೆ, ಇದು ಲೆಕ್ಕಾಚಾರಕ್ಕಾಗಿ ಪ್ರಸ್ತುತ ಸಾಲಿಗೆ ಸಂಬಂಧಿಸಿದ ಸಾಲುಗಳ ಗುಂಪಾಗಿದೆ.

ಪ್ರಮುಖ ಪರಿಕಲ್ಪನೆಗಳು ಮತ್ತು ಸಿಂಟ್ಯಾಕ್ಸ್

1. The OVER() Clause

OVER() ಕ್ಲಾಸ್ ವಿಂಡೋ ಫಂಕ್ಷನ್‌ನ ಹೃದಯವಾಗಿದೆ. ಇದು ಫಂಕ್ಷನ್ ಕಾರ್ಯನಿರ್ವಹಿಸುವ ಸಾಲುಗಳ ವಿಂಡೋವನ್ನು ವ್ಯಾಖ್ಯಾನಿಸುತ್ತದೆ. ಯಾವುದೇ ಆರ್ಗ್ಯುಮೆಂಟ್‌ಗಳಿಲ್ಲದ ಸರಳ OVER() ಕ್ಲಾಸ್ ಸಂಪೂರ್ಣ ಫಲಿತಾಂಶದ ಗುಂಪನ್ನು ವಿಂಡೋ ಎಂದು ಪರಿಗಣಿಸುತ್ತದೆ. ಉದಾಹರಣೆಗೆ:

SQL ಉದಾಹರಣೆ:

SELECT
  date,
  sales,
  AVG(sales) OVER()
FROM
  sales_data;

ಈ ಕ್ವೆರಿಯು sales_data ಟೇಬಲ್‌ನಲ್ಲಿನ ಎಲ್ಲಾ ದಿನಾಂಕಗಳಾದ್ಯಂತ ಸರಾಸರಿ ಮಾರಾಟವನ್ನು ಲೆಕ್ಕಾಚಾರ ಮಾಡುತ್ತದೆ.

2. PARTITION BY

PARTITION BY ಕ್ಲಾಸ್ ಡೇಟಾವನ್ನು ವಿಭಾಗಗಳಾಗಿ ವಿಭಜಿಸುತ್ತದೆ, ಮತ್ತು ವಿಂಡೋ ಫಂಕ್ಷನ್ ಅನ್ನು ಪ್ರತಿ ವಿಭಾಗಕ್ಕೆ ಪ್ರತ್ಯೇಕವಾಗಿ ಅನ್ವಯಿಸಲಾಗುತ್ತದೆ. ನಿಮ್ಮ ಡೇಟಾದೊಳಗಿನ ವಿವಿಧ ಗುಂಪುಗಳಿಗೆ ಮೆಟ್ರಿಕ್‌ಗಳನ್ನು ಲೆಕ್ಕಾಚಾರ ಮಾಡಲು ನೀವು ಬಯಸಿದಾಗ ಇದು ಉಪಯುಕ್ತವಾಗಿದೆ.

SQL ಉದಾಹರಣೆ:

SELECT
  date,
  product_id,
  sales,
  AVG(sales) OVER (PARTITION BY product_id)
FROM
  sales_data;

ಈ ಕ್ವೆರಿಯು ಪ್ರತಿ ಉತ್ಪನ್ನಕ್ಕೆ ಪ್ರತ್ಯೇಕವಾಗಿ ಸರಾಸರಿ ಮಾರಾಟವನ್ನು ಲೆಕ್ಕಾಚಾರ ಮಾಡುತ್ತದೆ.

3. ORDER BY

ORDER BY ಕ್ಲಾಸ್ ಪ್ರತಿ ವಿಭಾಗದೊಳಗಿನ ಸಾಲುಗಳ ಕ್ರಮವನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸುತ್ತದೆ. ರನ್ನಿಂಗ್ ಟೋಟಲ್, ಮೂವಿಂಗ್ ಸರಾಸರಿಗಳು, ಮತ್ತು ಇತರ ಸಮಯ-ಆಧಾರಿತ ಮೆಟ್ರಿಕ್‌ಗಳನ್ನು ಲೆಕ್ಕಾಚಾರ ಮಾಡಲು ಇದು ಅತ್ಯಗತ್ಯ.

SQL ಉದಾಹರಣೆ:

SELECT
  date,
  sales,
  SUM(sales) OVER (ORDER BY date)
FROM
  sales_data;

ಈ ಕ್ವೆರಿಯು ಕಾಲಾನಂತರದಲ್ಲಿ ಮಾರಾಟದ ಸಂಚಿತ ಮೊತ್ತವನ್ನು ಲೆಕ್ಕಾಚಾರ ಮಾಡುತ್ತದೆ.

4. ROWS/RANGE

ROWS ಮತ್ತು RANGE ಕ್ಲಾಸ್‌ಗಳು ವಿಂಡೋ ಫ್ರೇಮ್ ಅನ್ನು ವ್ಯಾಖ್ಯಾನಿಸುತ್ತವೆ, ಇದು ಲೆಕ್ಕಾಚಾರಕ್ಕಾಗಿ ಪ್ರಸ್ತುತ ಸಾಲಿಗೆ ಸಂಬಂಧಿಸಿದ ಸಾಲುಗಳ ಗುಂಪಾಗಿದೆ. ROWS ಕ್ಲಾಸ್ ಭೌತಿಕ ಸಾಲು ಸಂಖ್ಯೆಯ ಆಧಾರದ ಮೇಲೆ ವಿಂಡೋ ಫ್ರೇಮ್ ಅನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸುತ್ತದೆ, ಆದರೆ RANGE ಕ್ಲಾಸ್ ORDER BY ಕಾಲಮ್‌ನ ಮೌಲ್ಯಗಳ ಆಧಾರದ ಮೇಲೆ ವಿಂಡೋ ಫ್ರೇಮ್ ಅನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸುತ್ತದೆ.

ROWS ಉದಾಹರಣೆ:

SELECT
  date,
  sales,
  AVG(sales) OVER (ORDER BY date ROWS BETWEEN 2 PRECEDING AND CURRENT ROW)
FROM
  sales_data;

ಈ ಕ್ವೆರಿಯು ಕಳೆದ 3 ದಿನಗಳ (ಪ್ರಸ್ತುತ ದಿನವನ್ನು ಒಳಗೊಂಡಂತೆ) ಮಾರಾಟದ ಮೂವಿಂಗ್ ಸರಾಸರಿಯನ್ನು ಲೆಕ್ಕಾಚಾರ ಮಾಡುತ್ತದೆ.

RANGE ಉದಾಹರಣೆ:

SELECT
  date,
  sales,
  AVG(sales) OVER (ORDER BY date RANGE BETWEEN INTERVAL '2' DAY PRECEDING AND CURRENT ROW)
FROM
  sales_data;

ಈ ಕ್ವೆರಿಯು ಕಳೆದ 2 ದಿನಗಳ (ಪ್ರಸ್ತುತ ದಿನವನ್ನು ಒಳಗೊಂಡಂತೆ) ಮಾರಾಟದ ಮೂವಿಂಗ್ ಸರಾಸರಿಯನ್ನು ಲೆಕ್ಕಾಚಾರ ಮಾಡುತ್ತದೆ. ಗಮನಿಸಿ, `RANGE` ಗೆ ಸಂಖ್ಯಾತ್ಮಕ ಅಥವಾ ದಿನಾಂಕ/ಸಮಯ ಡೇಟಾ ಪ್ರಕಾರದ ಆರ್ಡರ್ಡ್ ಕಾಲಮ್ ಅಗತ್ಯವಿದೆ.

ಟೈಮ್ ಸೀರೀಸ್ ವಿಶ್ಲೇಷಣೆಗಾಗಿ ಸಾಮಾನ್ಯ ವಿಂಡೋ ಫಂಕ್ಷನ್‌ಗಳು

1. ರೋಲಿಂಗ್/ಮೂವಿಂಗ್ ಸರಾಸರಿ

ರೋಲಿಂಗ್ ಸರಾಸರಿ, ಇದನ್ನು ಮೂವಿಂಗ್ ಸರಾಸರಿ ಎಂದೂ ಕರೆಯಲಾಗುತ್ತದೆ, ಇದು ಟೈಮ್ ಸೀರೀಸ್ ಡೇಟಾದಲ್ಲಿನ ಅಲ್ಪಾವಧಿಯ ಏರಿಳಿತಗಳನ್ನು ಸುಗಮಗೊಳಿಸಲು ಮತ್ತು ದೀರ್ಘಾವಧಿಯ ಪ್ರವೃತ್ತಿಗಳನ್ನು ಹೈಲೈಟ್ ಮಾಡಲು ವ್ಯಾಪಕವಾಗಿ ಬಳಸಲಾಗುವ ತಂತ್ರವಾಗಿದೆ. ಇದನ್ನು ನಿರ್ದಿಷ್ಟ ಸಮಯದ ವಿಂಡೋದಲ್ಲಿನ ಮೌಲ್ಯಗಳನ್ನು ಸರಾಸರಿ ಮಾಡುವ ಮೂಲಕ ಲೆಕ್ಕಹಾಕಲಾಗುತ್ತದೆ.

SQL ಉದಾಹರಣೆ:

SELECT
  date,
  sales,
  AVG(sales) OVER (ORDER BY date ROWS BETWEEN 6 PRECEDING AND CURRENT ROW) AS moving_average_7_days
FROM
  sales_data;

ಈ ಕ್ವೆರಿಯು 7-ದಿನದ ಮಾರಾಟದ ಮೂವಿಂಗ್ ಸರಾಸರಿಯನ್ನು ಲೆಕ್ಕಾಚಾರ ಮಾಡುತ್ತದೆ.

Python ಉದಾಹರಣೆ (Pandas ಬಳಸಿ):

import pandas as pd

# 'sales_df' ಎಂಬ Pandas DataFrame ನಲ್ಲಿ 'date' ಮತ್ತು 'sales' ಕಾಲಮ್‌ಗಳಿವೆ ಎಂದು ಭಾವಿಸೋಣ

sales_df['moving_average_7_days'] = sales_df['sales'].rolling(window=7).mean()

ಜಾಗತಿಕ ಅಪ್ಲಿಕೇಶನ್ ಉದಾಹರಣೆ: ಬಹುರಾಷ್ಟ್ರೀಯ ಚಿಲ್ಲರೆ ವ್ಯಾಪಾರಿಯು ದೈನಂದಿನ ಮಾರಾಟದ ಏರಿಳಿತಗಳನ್ನು ಸುಗಮಗೊಳಿಸಲು ಮತ್ತು ವಿವಿಧ ಪ್ರದೇಶಗಳಲ್ಲಿನ ಆಧಾರವಾಗಿರುವ ಮಾರಾಟ ಪ್ರವೃತ್ತಿಗಳನ್ನು ಗುರುತಿಸಲು 30-ದಿನದ ಮೂವಿಂಗ್ ಸರಾಸರಿಯನ್ನು ಬಳಸಬಹುದು.

2. ಸಂಚಿತ ಮೊತ್ತ

ಸಂಚಿತ ಮೊತ್ತ, ರನ್ನಿಂಗ್ ಟೋಟಲ್ ಎಂದೂ ಕರೆಯಲ್ಪಡುತ್ತದೆ, ಇದು ಪ್ರಸ್ತುತ ಸಾಲಿನವರೆಗಿನ ಮೌಲ್ಯಗಳ ಮೊತ್ತವನ್ನು ಲೆಕ್ಕಾಚಾರ ಮಾಡುತ್ತದೆ. ಕಾಲಾನಂತರದಲ್ಲಿ ಸಂಗ್ರಹವಾದ ಒಟ್ಟು ಮೌಲ್ಯವನ್ನು ಟ್ರ್ಯಾಕ್ ಮಾಡಲು ಇದು ಉಪಯುಕ್ತವಾಗಿದೆ.

SQL ಉದಾಹರಣೆ:

SELECT
  date,
  sales,
  SUM(sales) OVER (ORDER BY date) AS cumulative_sales
FROM
  sales_data;

ಈ ಕ್ವೆರಿಯು ಕಾಲಾನಂತರದಲ್ಲಿ ಮಾರಾಟದ ಸಂಚಿತ ಮೊತ್ತವನ್ನು ಲೆಕ್ಕಾಚಾರ ಮಾಡುತ್ತದೆ.

Python ಉದಾಹರಣೆ (Pandas ಬಳಸಿ):

import pandas as pd

# 'sales_df' ಎಂಬ Pandas DataFrame ನಲ್ಲಿ 'date' ಮತ್ತು 'sales' ಕಾಲಮ್‌ಗಳಿವೆ ಎಂದು ಭಾವಿಸೋಣ

sales_df['cumulative_sales'] = sales_df['sales'].cumsum()

ಜಾಗತಿಕ ಅಪ್ಲಿಕೇಶನ್ ಉದಾಹರಣೆ: ಅಂತರರಾಷ್ಟ್ರೀಯ ಇ-ಕಾಮರ್ಸ್ ಕಂಪನಿಯು ವಿವಿಧ ಮಾರುಕಟ್ಟೆಗಳಲ್ಲಿ ಹೊಸ ಉತ್ಪನ್ನ ಬಿಡುಗಡೆಯಿಂದ ಉತ್ಪತ್ತಿಯಾದ ಒಟ್ಟು ಆದಾಯವನ್ನು ಟ್ರ್ಯಾಕ್ ಮಾಡಲು ಸಂಚಿತ ಮಾರಾಟವನ್ನು ಬಳಸಬಹುದು.

3. ಲೀಡ್ ಮತ್ತು ಲ್ಯಾಗ್

LEAD ಮತ್ತು LAG ಫಂಕ್ಷನ್‌ಗಳು ನಿಮಗೆ ಕ್ರಮವಾಗಿ ನಂತರದ ಅಥವಾ ಹಿಂದಿನ ಸಾಲುಗಳಿಂದ ಡೇಟಾವನ್ನು ಪ್ರವೇಶಿಸಲು ಅನುಮತಿಸುತ್ತವೆ. ಅವಧಿ-ಅವಧಿಯ ಬದಲಾವಣೆಗಳನ್ನು ಲೆಕ್ಕಾಚಾರ ಮಾಡಲು, ಪ್ರವೃತ್ತಿಗಳನ್ನು ಗುರುತಿಸಲು ಮತ್ತು ವಿವಿಧ ಸಮಯದ ಅವಧಿಗಳಲ್ಲಿ ಮೌಲ್ಯಗಳನ್ನು ಹೋಲಿಸಲು ಅವು ಉಪಯುಕ್ತವಾಗಿವೆ.

SQL ಉದಾಹರಣೆ:

SELECT
  date,
  sales,
  LAG(sales, 1, 0) OVER (ORDER BY date) AS previous_day_sales,
  sales - LAG(sales, 1, 0) OVER (ORDER BY date) AS sales_difference
FROM
  sales_data;

ಈ ಕ್ವೆರಿಯು ಹಿಂದಿನ ದಿನಕ್ಕೆ ಹೋಲಿಸಿದರೆ ಮಾರಾಟದ ವ್ಯತ್ಯಾಸವನ್ನು ಲೆಕ್ಕಾಚಾರ ಮಾಡುತ್ತದೆ. `LAG(sales, 1, 0)` ಫಂಕ್ಷನ್ ಹಿಂದಿನ ಸಾಲಿನಿಂದ (ಆಫ್‌ಸೆಟ್ 1) ಮಾರಾಟ ಮೌಲ್ಯವನ್ನು ಹಿಂಪಡೆಯುತ್ತದೆ, ಮತ್ತು ಹಿಂದಿನ ಸಾಲು ಇಲ್ಲದಿದ್ದರೆ (ಉದಾ., ಮೊದಲ ಸಾಲು), ಅದು 0 (ಡೀಫಾಲ್ಟ್ ಮೌಲ್ಯ) ಅನ್ನು ಹಿಂತಿರುಗಿಸುತ್ತದೆ.

Python ಉದಾಹರಣೆ (Pandas ಬಳಸಿ):

import pandas as pd

# 'sales_df' ಎಂಬ Pandas DataFrame ನಲ್ಲಿ 'date' ಮತ್ತು 'sales' ಕಾಲಮ್‌ಗಳಿವೆ ಎಂದು ಭಾವಿಸೋಣ

sales_df['previous_day_sales'] = sales_df['sales'].shift(1)
sales_df['sales_difference'] = sales_df['sales'] - sales_df['previous_day_sales'].fillna(0)

ಜಾಗತಿಕ ಅಪ್ಲಿಕೇಶನ್ ಉದಾಹರಣೆ: ಜಾಗತಿಕ ವಿಮಾನಯಾನ ಸಂಸ್ಥೆಯು ವಿವಿಧ ವಾರಗಳಲ್ಲಿ ಒಂದೇ ಮಾರ್ಗದ ಟಿಕೆಟ್ ಮಾರಾಟವನ್ನು ಹೋಲಿಸಲು ಮತ್ತು ಸಂಭಾವ್ಯ ಬೇಡಿಕೆಯ ಏರಿಳಿತಗಳನ್ನು ಗುರುತಿಸಲು ಲೀಡ್ ಮತ್ತು ಲ್ಯಾಗ್ ಫಂಕ್ಷನ್‌ಗಳನ್ನು ಬಳಸಬಹುದು.

4. ರಾಂಕ್ ಮತ್ತು ಡೆನ್ಸ್ ರಾಂಕ್

RANK() ಮತ್ತು DENSE_RANK() ಫಂಕ್ಷನ್‌ಗಳು ನಿರ್ದಿಷ್ಟಪಡಿಸಿದ ಕ್ರಮಾನುಗತದ ಆಧಾರದ ಮೇಲೆ ವಿಭಾಗದೊಳಗಿನ ಪ್ರತಿಯೊಂದು ಸಾಲಿಗೆ ಒಂದು ರಾಂಕ್ ಅನ್ನು ನಿಗದಿಪಡಿಸುತ್ತವೆ. RANK() ಅಂತರಗಳೊಂದಿಗೆ ರಾಂಕ್‌ಗಳನ್ನು ನಿಗದಿಪಡಿಸುತ್ತದೆ (ಉದಾ., 1, 2, 2, 4), ಆದರೆ DENSE_RANK() ಅಂತರಗಳಿಲ್ಲದೆ ರಾಂಕ್‌ಗಳನ್ನು ನಿಗದಿಪಡಿಸುತ್ತದೆ (ಉದಾ., 1, 2, 2, 3).

SQL ಉದಾಹರಣೆ:

SELECT
  date,
  sales,
  RANK() OVER (ORDER BY sales DESC) AS sales_rank,
  DENSE_RANK() OVER (ORDER BY sales DESC) AS sales_dense_rank
FROM
  sales_data;

ಈ ಕ್ವೆರಿಯು ಮಾರಾಟ ಮೌಲ್ಯಗಳನ್ನು ಅವರೋಹಣ ಕ್ರಮದಲ್ಲಿ ರಾಂಕ್ ಮಾಡುತ್ತದೆ.

ಜಾಗತಿಕ ಅಪ್ಲಿಕೇಶನ್ ಉದಾಹರಣೆ: ಜಾಗತಿಕ ಆನ್‌ಲೈನ್ ಮಾರುಕಟ್ಟೆಯು ಪ್ರತಿ ದೇಶ ಅಥವಾ ಪ್ರದೇಶದಲ್ಲಿ ಹೆಚ್ಚು ಮಾರಾಟವಾಗುವ ಉತ್ಪನ್ನಗಳನ್ನು ಗುರುತಿಸಲು ರಾಂಕಿಂಗ್ ಫಂಕ್ಷನ್‌ಗಳನ್ನು ಬಳಸಬಹುದು.

ಸುಧಾರಿತ ತಂತ್ರಗಳು ಮತ್ತು ಅಪ್ಲಿಕೇಶನ್‌ಗಳು

1. ವಿಂಡೋ ಫಂಕ್ಷನ್‌ಗಳನ್ನು ಸಂಯೋಜಿಸುವುದು

ಹೆಚ್ಚು ಸಂಕೀರ್ಣವಾದ ಲೆಕ್ಕಾಚಾರಗಳನ್ನು ನಿರ್ವಹಿಸಲು ವಿಂಡೋ ಫಂಕ್ಷನ್‌ಗಳನ್ನು ಸಂಯೋಜಿಸಬಹುದು. ಉದಾಹರಣೆಗೆ, ನೀವು ಸಂಚಿತ ಮೊತ್ತದ ಮೂವಿಂಗ್ ಸರಾಸರಿಯನ್ನು ಲೆಕ್ಕಾಚಾರ ಮಾಡಬಹುದು.

SQL ಉದಾಹರಣೆ:

SELECT
  date,
  sales,
  AVG(cumulative_sales) OVER (ORDER BY date ROWS BETWEEN 6 PRECEDING AND CURRENT ROW) AS moving_average_cumulative_sales
FROM
  (
    SELECT
      date,
      sales,
      SUM(sales) OVER (ORDER BY date) AS cumulative_sales
    FROM
      sales_data
  ) AS subquery;

2. ಷರತ್ತುಬದ್ಧ ಒಟ್ಟುಗೂಡಿಸುವಿಕೆಯೊಂದಿಗೆ ವಿಂಡೋ ಫಂಕ್ಷನ್‌ಗಳನ್ನು ಬಳಸುವುದು

ನಿರ್ದಿಷ್ಟ ಪರಿಸ್ಥಿತಿಗಳ ಆಧಾರದ ಮೇಲೆ ಲೆಕ್ಕಾಚಾರಗಳನ್ನು ನಿರ್ವಹಿಸಲು ನೀವು ಷರತ್ತುಬದ್ಧ ಒಟ್ಟುಗೂಡಿಸುವಿಕೆಯೊಂದಿಗೆ (ಉದಾ., CASE ಹೇಳಿಕೆಗಳನ್ನು ಬಳಸಿ) ವಿಂಡೋ ಫಂಕ್ಷನ್‌ಗಳನ್ನು ಬಳಸಬಹುದು.

SQL ಉದಾಹರಣೆ:

SELECT
  date,
  sales,
  AVG(CASE WHEN sales > 100 THEN sales ELSE NULL END) OVER (ORDER BY date ROWS BETWEEN 6 PRECEDING AND CURRENT ROW) AS moving_average_high_sales
FROM
  sales_data;

ಈ ಕ್ವೆರಿಯು ಮಾರಾಟವು 100 ಕ್ಕಿಂತ ಹೆಚ್ಚಿರುವ ದಿನಗಳಿಗೆ ಮಾತ್ರ ಮಾರಾಟದ ಮೂವಿಂಗ್ ಸರಾಸರಿಯನ್ನು ಲೆಕ್ಕಾಚಾರ ಮಾಡುತ್ತದೆ.

3. ಟೈಮ್ ಸೀರೀಸ್ ವಿಭಜನೆ

ಟೈಮ್ ಸೀರೀಸ್ ಅನ್ನು ಅದರ ಪ್ರವೃತ್ತಿ, ಕಾಲೋಚಿತ, ಮತ್ತು ಉಳಿಕೆ ಘಟಕಗಳಾಗಿ ವಿಭಜಿಸಲು ವಿಂಡೋ ಫಂಕ್ಷನ್‌ಗಳನ್ನು ಬಳಸಬಹುದು. ಇದು ಪ್ರವೃತ್ತಿಯನ್ನು ಅಂದಾಜು ಮಾಡಲು ಮೂವಿಂಗ್ ಸರಾಸರಿಗಳನ್ನು ಲೆಕ್ಕಾಚಾರ ಮಾಡುವುದು, ಕಾಲೋಚಿತ ಮಾದರಿಗಳನ್ನು ಗುರುತಿಸುವುದು, ಮತ್ತು ನಂತರ ಉಳಿಕೆಗಳನ್ನು ಪಡೆಯಲು ಪ್ರವೃತ್ತಿ ಮತ್ತು ಕಾಲೋಚಿತ ಘಟಕಗಳನ್ನು ಕಳೆಯುವುದನ್ನು ಒಳಗೊಂಡಿರುತ್ತದೆ.

4. ವೈಪರೀತ್ಯ ಪತ್ತೆ

ಮೂವಿಂಗ್ ಸರಾಸರಿಗಳು ಮತ್ತು ಸ್ಟ್ಯಾಂಡರ್ಡ್ ಡೀವಿಯೇಷನ್‌ಗಳನ್ನು ಲೆಕ್ಕಾಚಾರ ಮಾಡುವ ಮೂಲಕ ಟೈಮ್ ಸೀರೀಸ್ ಡೇಟಾದಲ್ಲಿ ವೈಪರೀತ್ಯಗಳನ್ನು ಪತ್ತೆಹಚ್ಚಲು ವಿಂಡೋ ಫಂಕ್ಷನ್‌ಗಳನ್ನು ಬಳಸಬಹುದು. ನಿರ್ದಿಷ್ಟ ವ್ಯಾಪ್ತಿಯ ಹೊರಗೆ ಬರುವ ಡೇಟಾ ಪಾಯಿಂಟ್‌ಗಳನ್ನು (ಉದಾ., ಮೂವಿಂಗ್ ಸರಾಸರಿಯಿಂದ +/- 3 ಸ್ಟ್ಯಾಂಡರ್ಡ್ ಡೀವಿಯೇಷನ್‌ಗಳು) ವೈಪರೀತ್ಯಗಳೆಂದು ಫ್ಲ್ಯಾಗ್ ಮಾಡಬಹುದು.

ಉದ್ಯಮಗಳಾದ್ಯಂತ ಪ್ರಾಯೋಗಿಕ ಉದಾಹರಣೆಗಳು

1. ಹಣಕಾಸು

2. ಚಿಲ್ಲರೆ ವ್ಯಾಪಾರ

3. ಉತ್ಪಾದನೆ

4. ಆರೋಗ್ಯ ರಕ್ಷಣೆ

ಸರಿಯಾದ ಸಾಧನವನ್ನು ಆರಿಸುವುದು

ವಿಂಡೋ ಫಂಕ್ಷನ್‌ಗಳು ವಿವಿಧ ಡೇಟಾ ಸಂಸ್ಕರಣಾ ಸಾಧನಗಳು ಮತ್ತು ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಗಳಲ್ಲಿ ಲಭ್ಯವಿದೆ, ಅವುಗಳೆಂದರೆ:

ಸಾಧನದ ಆಯ್ಕೆಯು ನಿಮ್ಮ ನಿರ್ದಿಷ್ಟ ಅಗತ್ಯಗಳು ಮತ್ತು ತಾಂತ್ರಿಕ ಪರಿಣತಿಯನ್ನು ಅವಲಂಬಿಸಿರುತ್ತದೆ. ಸಂಬಂಧಿತ ಡೇಟಾಬೇಸ್‌ಗಳಲ್ಲಿ ಸಂಗ್ರಹವಾಗಿರುವ ಡೇಟಾಕ್ಕೆ SQL ಸೂಕ್ತವಾಗಿದೆ, ಆದರೆ Python ಮತ್ತು Spark ದೊಡ್ಡ ಡೇಟಾಸೆಟ್‌ಗಳನ್ನು ಪ್ರಕ್ರಿಯೆಗೊಳಿಸಲು ಮತ್ತು ಸಂಕೀರ್ಣ ವಿಶ್ಲೇಷಣೆಯನ್ನು ನಿರ್ವಹಿಸಲು ಹೆಚ್ಚು ಹೊಂದಿಕೊಳ್ಳುತ್ತವೆ.

ಅತ್ಯುತ್ತಮ ಅಭ್ಯಾಸಗಳು

ತೀರ್ಮಾನ

ವಿಂಡೋ ಫಂಕ್ಷನ್‌ಗಳು ಟೈಮ್ ಸೀರೀಸ್ ವಿಶ್ಲೇಷಣೆಗೆ ಒಂದು ಶಕ್ತಿಯುತ ಸಾಧನವಾಗಿದೆ, ಇದು ನಿಮಗೆ ಮೂವಿಂಗ್ ಸರಾಸರಿಗಳು, ಸಂಚಿತ ಮೊತ್ತಗಳು, ಲೀಡ್/ಲ್ಯಾಗ್ ಮೌಲ್ಯಗಳು, ಮತ್ತು ಇತರ ಸಮಯ-ಆಧಾರಿತ ಮೆಟ್ರಿಕ್‌ಗಳನ್ನು ಲೆಕ್ಕಾಚಾರ ಮಾಡಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ. ವಿಂಡೋ ಫಂಕ್ಷನ್‌ಗಳನ್ನು ಕರಗತ ಮಾಡಿಕೊಳ್ಳುವ ಮೂಲಕ, ನಿಮ್ಮ ಟೈಮ್ ಸೀರೀಸ್ ಡೇಟಾದಿಂದ ಮೌಲ್ಯಯುತ ಒಳನೋಟಗಳನ್ನು ನೀವು ಅನ್ಲಾಕ್ ಮಾಡಬಹುದು ಮತ್ತು ಹೆಚ್ಚು ತಿಳುವಳಿಕೆಯುಳ್ಳ ನಿರ್ಧಾರಗಳನ್ನು ತೆಗೆದುಕೊಳ್ಳಬಹುದು. ನೀವು ಹಣಕಾಸು ಡೇಟಾ, ಮಾರಾಟ ಡೇಟಾ, ಸೆನ್ಸರ್ ಡೇಟಾ, ಅಥವಾ ವೆಬ್ ಟ್ರಾಫಿಕ್ ಡೇಟಾವನ್ನು ವಿಶ್ಲೇಷಿಸುತ್ತಿರಲಿ, ಸಾಂಪ್ರದಾಯಿಕ ಒಟ್ಟುಗೂಡಿಸುವ ತಂತ್ರಗಳನ್ನು ಬಳಸಿ ಪತ್ತೆಹಚ್ಚಲು ಕಷ್ಟಕರವಾದ ಮಾದರಿಗಳು, ಪ್ರವೃತ್ತಿಗಳು ಮತ್ತು ವೈಪರೀತ್ಯಗಳನ್ನು ಗುರುತಿಸಲು ವಿಂಡೋ ಫಂಕ್ಷನ್‌ಗಳು ನಿಮಗೆ ಸಹಾಯ ಮಾಡಬಹುದು. ವಿಂಡೋ ಫಂಕ್ಷನ್‌ಗಳ ಪ್ರಮುಖ ಪರಿಕಲ್ಪನೆಗಳು ಮತ್ತು ಸಿಂಟ್ಯಾಕ್ಸ್ ಅನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವ ಮೂಲಕ ಮತ್ತು ಅತ್ಯುತ್ತಮ ಅಭ್ಯಾಸಗಳನ್ನು ಅನುಸರಿಸುವ ಮೂಲಕ, ನೀವು ವಿವಿಧ ಉದ್ಯಮಗಳಾದ್ಯಂತ ವ್ಯಾಪಕ ಶ್ರೇಣಿಯ ನೈಜ-ಪ್ರಪಂಚದ ಸಮಸ್ಯೆಗಳನ್ನು ಪರಿಹರಿಸಲು ಅವುಗಳನ್ನು ಪರಿಣಾಮಕಾರಿಯಾಗಿ ಬಳಸಿಕೊಳ್ಳಬಹುದು.