تالار گفتمان مانشت
تست ۱۰۴ سال ۹۳ کامپیوتر - نسخه‌ی قابل چاپ

تست ۱۰۴ سال ۹۳ کامپیوتر - EGALE - 23 دى ۱۳۹۳ ۰۹:۵۰ ب.ظ

سلام کسی راه حل این سوالو داره؟

و‌منظور از‌ select 0 as s چیه ؟؟

RE: تست ۱۰۴ سال ۹۳ کامپیوتر - shamim_70 - 23 دى ۱۳۹۳ ۱۰:۰۴ ب.ظ

سلام
جوابش کدوم گزینه هس؟
من تاحالا select 0 ندیدم!شاید select *منظورش باشه!

فرستاده شده از SM-T211ِ من با Tapatalk

RE: تست ۱۰۴ سال ۹۳ کامپیوتر - MiladCr7 - 23 دى ۱۳۹۳ ۱۰:۰۹ ب.ظ

سلام.
Select 0 as s یعنی ستون اول رو به اسم [tex]s[/tex] در نظر بگیر.به جای اسم ستون جدول شمارش رو نوشته

RE: تست ۱۰۴ سال ۹۳ کامپیوتر - EGALE - 23 دى ۱۳۹۳ ۱۰:۲۱ ب.ظ

جواب گزینه ۲ هست.

کسی راه حل این جوابو‌داره؟ کلا چجوری باید تحلیل کینم خیلی پیچیدست

RE: تست ۱۰۴ سال ۹۳ کامپیوتر - shamim_70 - 23 دى ۱۳۹۳ ۱۱:۱۰ ب.ظ

سوال سختی بود!
ببین این پرس جوی select 0 با اونnot exitsک بعدش اومده کلا ب این معنیه که:
بخش هایی ک کارمندی ندارن..یعنی سطری از دپارتمان ک در جدول workنیست ک اینجا فقطd2هس
بعد select SUM..هم داون بخش هایی هس ک کارمند دارن.
حالا این دوتا رو اجتماع مبگیری مجموع SALARYرو واسشون حساب میکنی بعد میانگین میگیری
d1,d3بخش هایی هستند ک کارمند دارن جمعشون میشه =۱+۳+۴+۴=۱۲
d2هم بخشی هس ک هیچ کارمتدی نداره=۰
میانگینشم میشه ۴
اگ نفهمیدین بگید بیشتر بگم

فرستاده شده از SM-T211ِ من با Tapatalk

RE: تست ۱۰۴ سال ۹۳ کامپیوتر - EGALE - 23 دى ۱۳۹۳ ۱۱:۴۴ ب.ظ

خط اول میانگین میخواد که از کجا فهمید میانگین ۳تا دپارتمان هست؟ آخه from آخر دپارتمانهایی که وجود داره ۲ تاست .

RE: تست ۱۰۴ سال ۹۳ کامپیوتر - shamim_70 - 30 دى ۱۳۹۳ ۰۶:۱۸ ب.ظ

سلام

این راه حل منه واسه حل این سوالSadحالا چقد درسته نمیدونمBig Grin)

موفق باشید

RE: تست ۱۰۴ سال ۹۳ کامپیوتر - Hamid_0311 - 14 بهمن ۱۳۹۳ ۰۳:۵۶ ب.ظ

با سلام این سوال البته حس میکنم یکم زیاده روی کرده دیگه Big Grin همه توی دانشگاه ها Sql حرفه ای یاد نمیگرن که این اومده این سوالو داده حالا به هر حال بریم سراغ جواب درست این سوال جواب های که داده شده همشون غلطن
توی این سوالات باید از داخلی ترین select شروع کنید
خوب دستور
[tex]Select\: *FROM\: WorksInw\: Where\: W1.did=D.did[/tex]

این دستور میاد و دو جدول WorksIn و Departeman پیوند میده و اونهای که
did یکسان دارن را بر میگردونه از جدول WorksIn
پس یعنی خود جدول Worksin کامل بر میگردونه حالا بریم مرحله بعدی
دستور
[tex]select\: \: 0\: As\: s \: FROM\: Department\: D\: WHERE\: NOT\: EXIST\: \: (Select\: \: *\: FROM\: \: \: WorksIn\: w\: \: Where\: \: W1.did=D.did\: )\: [/tex]

خوب حالا به قسمت
select 0 As s
کاری نداشته باشید اینو سر وقتش توضیح میدهم ببینم دستور چی میخواهد گفته که تمام اون did های از جدول دپارتمان که توی جدول Worksin نیستن بده (چرا گفتم جدول Worksin چون قبلش اون Select داخلی به دست اوردیم و دیدم که همون جدول WorksIn هست واسه همین میگم پس اشتباه نکنید)

خوب نتیجه اش چی میشه؟ میشه فقط سطر دوم جدول دپارتمان یعنی

d2 electrionics a2

خوب یه سطر به ما داد اما حالا بریم سراغ اصل کار سوال
select 0 As s
چیکار میکنه؟ میاد از توی حاصل دستور یه جدولی میسازه که یک ستون داره و اسمش هست s
حالا محتوای هر ستون چیه؟ میگه به ازای هر سطری که میشماری یه ۰ بزار داخل این ستون یعنی چی؟ یعنی اگر حاصل دستور قبلی ۴ تا سطر بود این دستور به ما یه جدولی میداد که یه ستون داشت به اسم s و ۴ تا سطر داشت که هر ۴ تاش مقدارشون ۰ بود اگر جای ۰ یک گذاشته بودن ۴ تا ۱ میزاشت خوب پس فهمیدم که کل خروجی این جدول شد یه جدول که یه ستون داره و یه سطر که محتواش هم عدد ۰ هست

حالا بریم قسمت بالای به دست بیاریم

گفته که

[tex]Select\: SUM\: (w.Salary)\: As\: s\: FROM\: \: Employee\: E\: ,WorksIn\: w\: Where\: E.eid=W.eid\: GROUP\: BY\: W.did[/tex]

میاد روی دو جدول Employee , Worksin پیوند میده و اونهای که eid مساوی دارن را برمیگردونه یعنی چی؟ یعنی همون جدول worksin برمیگردونه
اما براساس ستون did گروه بندی میکنه یعنی دو تا گروه میشن یکی اونهای که d1 هستن توی یک گروه
d3 هم توی یک گروه
حالا روی اهر کدوم از این گروه ها روی ستون حقوق جمع اجرا میشه یعنی جی میده؟ یه جدول تک ستونه به ما میده که اسم ستونش هست s
و دوتا سطر داره یکی مقدارش هست ۸ و یکی هم ۴
خوب حالا گفته این دو تا جدولی که به دست اوردیم یعنی
s
۸
۴

,

s
۰
با هم اجتماع کن (ما وقتی میتونیم دوتا جدول اجتماع بگیریم که یک تعداد ستون ها برابر باشه و ستون ها عینا مثل هم باشن و نوع دامنه هر ستون هم مثل هم باشه در حالی که توی پاسخی که دوستان دادن همین طوری اجتماع گرفتن که اصلا چنین چیزی ممکن نیست که شما دوتا جدول متفاوت اجتماع بگیری هرچند مقدار دستورات هم اشتباه حساب کردن)

خوب حالا اجتماع که بگیریم یه جدول به ما میده با یک ستون و ۳ سطر که مقادیرش هست
۸
۴
۰
و اسم جدول هم گذاشتیم R (اون آخر دستورات دقت کنید نوشته AS R)

حالا دستور اول داره چی میگه؟ میگه میانگین جدول R روی ستون S به ما بده خوب میشه چی؟
۸+۴+۰= ۱۲
چندتا سطر بود؟ ۳ تا پس تقسیم بر ۳ میشه
۱۲/۳= ۴ پس شد گزینه ۲

اما یه نکته دیگه در مورد اشتباه دوستان مقدار avg مقادیر نال را در نظر نمیگیره یعنی اونطوری که استدلال کردید اگر هم بخواهد جواب درستو بده تقسیم بر دو میکنه نه ۳ چون یه سطر مقدارش نال هست .
Big Grin
موفق باشید

پاسخ : تست ۱۰۴ سال ۹۳ کامپیوتر - shamim_70 - 14 بهمن ۱۳۹۳ ۰۵:۵۱ ب.ظ

بابا حرفه اییییییییییییییییییییی
شما میانگین دانشجوها رو میخوای حساب کنی یکیشون ۰باشه تاثیر رو میانگین نداره؟
بعدم اینجا مقدار nullک نیس،۰هس!۰ هم ی مقداریم
توو کتاب مقسمی گفته فقط توابعmaxوminمقدارnullرو در نطر نمیگیرین!

RE: تست ۱۰۴ سال ۹۳ کامپیوتر - shahin_cr7 - 14 بهمن ۱۳۹۳ ۰۹:۵۷ ب.ظ

سلام

من تحلیل مرحله به مرحله سوال با جوابش رو میذارم، واسه ی حلش کمکتون می کنه.
[تصویر:  332071_dgsap62abvcn4awbqv7q.jpg]