نمایش همه فیلد های یک view در صورت استفاده از دستور distinct
باسلام
من یک ویو از چند جدول دارم که شامل آیدی آنها نیز می شود حالا می خواد distinct بر روی یک ستون انجام بدم اما کلیه فیلدها را نیز تکرار کند . تمامی کدهای موجود در این سایت و بعضی سایتهای خارجی را نیز تست کردم چون ایدی جدول های مختلف وجود دارد این عمل به خوبی انجام نمی شود از اساتید کسی هست که بتونه در این زمینه راهنمایی کند؟
نقل قول: نمایش همه فیلد های یک view در صورت استفاده از دستور distinct
راه اول:
select View_1.id , View_1.name , View_1.rankname
from View_1
where View_1.id in
(
select min(View_1.id)
from View_1
group by View_1.rankname
)
راه دوم:
select dt.id , dt.name , dt.rankname
from
(select
* ,
ROW_NUMBER() over (partition by view_1.rankname order by view_1.rankname) as rownumber
from View_1
) as dt
where dt.rownumber = 1
توی این مثال distinct روی rankname انجام شده.
نقل قول: نمایش همه فیلد های یک view در صورت استفاده از دستور distinct
خوب فقط را همان ستون distinct کن مشکل چیه؟
Select Distinct fld1 FROM mytable
نمونه جدول بگذار و بگو چه خروجی می خوای
نقل قول: نمایش همه فیلد های یک view در صورت استفاده از دستور distinct
نقل قول:
نوشته شده توسط
Mahmoud.Afrad
راه اول:
select View_1.id , View_1.name , View_1.rankname
from View_1
where View_1.id in
(
select min(View_1.id)
from View_1
group by View_1.rankname
)
با تشکر
کد بالا جواب داد فقط می خواستم اگه بشه دربارش یه مقداری توضیح بدین؟
نقل قول: نمایش همه فیلد های یک view در صورت استفاده از دستور distinct
ابتدا برحسب فیلد مورد نظر گروه بندی کرده و از هر گروه یک id را انتخاب میکنیم(سلکت داخلی. min اولین عنصر هر گروه رو میده. id منظور کلید هست.)
بعد توسط سلکت خارجی اطلاعات کامل سطرهایی که id شون بدست آمده رو سلکت میکینم.
نقل قول: نمایش همه فیلد های یک view در صورت استفاده از دستور distinct
این فقط یک ID میده در حالی که id های زیادی برای اون مقدار ممکنه وجود داشته باشه
مثلا برای مقدار A می تونه ID های 1 و 2 و 3 وجود داشته باشه اما فقط مقدار 1 بر می گرده
نقل قول: نمایش همه فیلد های یک view در صورت استفاده از دستور distinct
نقل قول: نمایش همه فیلد های یک view در صورت استفاده از دستور distinct
منم یه مشکل اینجوری دارم
یه view دارم شامل پستهام و تگهاشون و عکسهاشون و کامنتهاشون
حالا وتی بهش می گم id=1 رو نمایش بده 8 بار تکرارش می کنه
دلیلشم اینه که این پست 2 تا کامنت داره و 4 تا تگ!
توی اینترفیس چه جوری باید جلوی این تکرار رکورد گرفته بشه؟
باید یخیال view بشم؟