ورود

View Full Version : دستور بانک اطلاعاتی sql



shima_2
یک شنبه 16 آذر 1393, 11:27 صبح
با سلام
من یک پرسش نامه را برای 200 نفر داده ام و آن ها به این سوال جواب داده اند
محل سکونت: شهر روستا نام فیلد(Mahalesokunat)
چقدر از اینترنتی که در دسترس دارید رضایت دارید:(MizanRezayatAzIenternet)
بسیار کم کم متوسط زیاد بسیار زیاد
و جوابهای آنها به صورت عدد در جدول ذخیره می شود یعنی مثلا اگر در شهر سکونت داشته باشد 1 و اگر در روستا سکونت داشته باشد 2 ذخیره می شود
حالا من باید یک کویری بنویسم که مشخص کند چند درصد افراد روستا از اینترنتی استفاده می کنند رضایت دارند اما واقعا گیج شده ام و نیاز به راهنمایی شما عزیزان دارم.
ضمنا ممکن است تعداد افراد از 200 نفر بیشتر شود در نتیجه نباید ثابت باشد

محمد آشتیانی
یک شنبه 16 آذر 1393, 16:20 عصر
سلام
این کوئری خروجی مورد نظرتون رو میده فارق از بحث بهینه بودن یا نبودن


SELECT Mahalesokunat ,
MizanRezayatAzIenternet,
COUNT(MizanRezayatAzIenternet) AS [AnswerCount],
(CAST((COUNT(MizanRezayatAzIenternet) * 100) AS FLOAT) / (SELECT CONVERT(int, rows) FROM sysindexes WHERE id = OBJECT_ID('question') AND indid < 2)) AS [Percentage] FROM question
GROUP BY MizanRezayatAzIenternet, Mahalesokunat


* فرض شده اسم جدولتون question هست

* خروجی 4 ستون هست

1- محل سکونت
2- انتخاب (یعنی اطلاعات این ردیف مربوط به این انتخاب هست)
3- فراوانی پاسخ ها
4- درصد این انتخاب نسبت به کل پاسخ ها


موفق باشید