تالار گفتمان مانشت
سوال آی تی ۹۳ (SQL ) - نسخه‌ی قابل چاپ

سوال آی تی ۹۳ (SQL ) - shamim_s - 03 بهمن ۱۳۹۳ ۰۸:۳۴ ب.ظ

سلام

دوستان کسی میتونه علت غلط بودن گزینه های ۲و۳و ۴ ودرستی گزینه یکو بگه.Shy

ممنون.

RE: سوال آی تی ۹۳ (SQL ) - shahin_cr7 - 04 بهمن ۱۳۹۳ ۰۲:۰۷ ب.ظ

سلام

چند جمله در مورد دستوراتش بگم، این جوری می تونید رد گزینه کنید.

- توابع محاسباتی (مثل Count , Sum , Avg) اگر بعد where استفاده بشن نتیجه رو تا همون سطری که کوئری پیش رفته بر می گردونند . یعنی تقریبا هرجا بعد where از توابع محاسباتی استفاده شد یعنی اون گزینه غلط هست.

- دستور having با group by استفاده میشه و کارش مثل گذاشتن شرط برای سطرها با دستور where هست.
یعنی بعد group by نمیشه از where استفاده کرد.

- دستور group by همیشه اخر میاد و فقط having و order by می تونند بعدش بیان.




حالا فکر کنم دیگه حلش کاری نداشته باشه، فقط توی گزینه ۱ تابع count در جای درست استفاده شده.

RE: سوال آی تی ۹۳ (SQL ) - shamim_s - 05 بهمن ۱۳۹۳ ۱۱:۳۲ ق.ظ

ممنون از توضیحات مفیدتون.
اگر بعد where در همه گزینه تابع محاسباتی با select میومد درست بود؟ این مواقع کدوم قبولو کنیم group by با having یا select تابع محاسباتی با where؟

RE: سوال آی تی ۹۳ (SQL ) - shahin_cr7 - 05 بهمن ۱۳۹۳ ۰۵:۴۱ ب.ظ

خواهش می کنم.

در مورد همه توابع محساباتی نمیشه نظر داد، فقط میشه گفت اکثر موارد وقتی بعد از where استفاده بشه گزینه غلطه.

اگر بعد where از select تودر تو استفاده شد، باید گزینه بررسی بشه. مثلا این کوئری هم درسته

کد:
select distinct sid from supplier where sid in(select distinct sid from supplier group by sid, pid having count(*) > 10)


RE: سوال آی تی ۹۳ (SQL ) - shamim_s - 05 بهمن ۱۳۹۳ ۰۶:۲۴ ب.ظ

(۰۵ بهمن ۱۳۹۳ ۰۵:۴۱ ب.ظ)shahin_cr7 نوشته شده توسط:  خواهش می کنم.

در مورد همه توابع محساباتی نمیشه نظر داد، فقط میشه گفت اکثر موارد وقتی بعد از where استفاده بشه گزینه غلطه.

اگر بعد where از select تودر تو استفاده شد، باید گزینه بررسی بشه. مثلا این کوئری هم درسته

کد:
select distinct sid from supplier where sid in(select distinct sid from supplier group by sid, pid having count(*) > 10)

بله متوجه شدم ممنون ازتون.
موفق باشیدShyShy