اوراکل 23ai چندین قابلیت جدید به عبارت GROUP BY اضافه کرده است که باعث ساده‌تر شدن نگارش کوئری و بهبود خوانایی آن می‌شود، به‌ویژه زمانی که داده‌ها بر اساس چند ستون گروه‌بندی می‌شوند.

از این نسخه، عبارت GROUP BY از بهبودهای زیر پشتیبانی می‌کند:

  • استفاده از نام مستعار ستون در GROUP BY: می‌توانید مستعار (Alias) ستون‌هایی که در بخش SELECT تعریف کرده‌اید را مستقیماً در عبارت GROUP BY استفاده کنید.

  • ارجاع به موقعیت ستون در GROUP BY: می‌توانید به ستون‌ها در عبارت GROUP BY با استفاده از شماره موقعیت آن‌ها در لیست SELECT ارجاع دهید.

این قابلیت‌ها باعث کاهش تکرار و کوتاه‌تر شدن دستورات SQL شده و نگهداری آن‌ها را آسان‌تر می‌کند.

در بروزرسانی نسخه 23.9، اوراکل قابلیت دیگری معرفی کرده است: عبارت GROUP BY ALL.

عبارت GROUP BY ALL دیگر نیازی به تکرار تمام ستون‌های غیرتجمیعی (Non-Aggregate) از بخش SELECT در عبارت GROUP BY ندارد. در نسخه‌های قبلی، برای عبارت GROUP BY می بایست همه ستون‌های غیرتجمیعی به‌صورت صریح در آن ذکر شوند. مثال:

SELECT OWNER, DATA_TYPE, NULLABLE, COUNT(*)
FROM DBA_TAB_COLUMNS
where owner='AUDSYS'
GROUP BY OWNER, DATA_TYPE, NULLABLE;
OWNER DATA_TYPE N COUNT(*)
-------------------- ------------------------- - ----------
AUDSYS VARCHAR2 Y 325
AUDSYS NUMBER Y 77
AUDSYS CLOB Y 14
AUDSYS RAW Y 8
AUDSYS TIMESTAMP(6) Y 8
AUDSYS NUMBER N 4
AUDSYS TIMESTAMP(6) N 1
7 rows selected.

با قابلیت جدید GROUP BY ALL همین کوئری را می‌توان به شکل کوتاه‌تری نوشت:

 
SQL> SELECT OWNER, DATA_TYPE, NULLABLE, COUNT(*)
FROM DBA_TAB_COLUMNS
where owner='AUDSYS'
GROUP BY ALL;
OWNER DATA_TYPE N COUNT(*)
-------------------- ------------------------- - ----------
AUDSYS VARCHAR2 Y 325
AUDSYS NUMBER Y 77
AUDSYS CLOB Y 14
AUDSYS RAW Y 8
AUDSYS TIMESTAMP(6) Y 8
AUDSYS NUMBER N 4
AUDSYS TIMESTAMP(6) N 1
7 rows selected.

.این قابلیت، همان نتیجه را تولید می‌کند اما باعث وضوح بیشتر کوئری و کاهش تکرار کد می‌شود

Vahid Yousefzadeh

ارائه خدمات مشاوره ، پشتیبانی و نصب و راه اندازی پایگاه داده اوراکل در سراسر کشور...................... تلفن: 09128110897 ایمیل:[email protected]

دیدگاهتان را بنویسید لغو پاسخ