Loading...

Във форума е въведено ограничение, което позволява на потребителите единствено да разглеждат публикуваните въпроси.

Denislava91 avatar Denislava91 5 Точки

10.Country Representative -Database Basics MS SQL Exam 11 Aug 2020

Здравейте,

Опитвам се да реша тази задача с DENSE_RANK , но стигам до едно положение и не мога да продължа:

1.Как да не визуализирам самия ранк?

2.Защо не мога да използвам филтрация с WHERE/HAVING CLause да визуализирам само с ранк 1?

Предварително благодаря.

SELECT
c.Name,
d.Name,
DENSE_RANK() OVER
(
    PARTITION BY c.Name
    ORDER BY COUNT(i.DistributorId) DESC

) as orderRank

FROM Countries AS c
left JOIN Distributors AS d ON d.CountryId=c.Id
left JOIN Ingredients AS i ON d.Id=i.DistributorId
GROUP BY c.Name,d.Name
ORDER BY c.Name,d.Name

--where/having [orderRank]=1

 

Тагове:
0
Module: C# DB
icowwww avatar icowwww 2673 Точки
Best Answer

Здравей,

Можеш да селектираш, каквото искаш от тази селекция. Като изнесеш Order и условието, кои редове да излизат във външната селекция.

Например 

SELECT CountryName,DisributorName from (
SELECT
c.Name as CountryName,
d.Name as DisributorName,
DENSE_RANK() OVER
(
    PARTITION BY c.Name
    ORDER BY COUNT(i.DistributorId) DESC

) as orderRank

FROM Countries AS c
left JOIN Distributors AS d ON d.CountryId=c.Id
left JOIN Ingredients AS i ON d.Id=i.DistributorId
GROUP BY c.Name,d.Name) as innerSelection
WHERE orderrank = 1
ORDER BY CountryName,DisributorName;

 

0
26/10/2021 22:22:49
Denislava91 avatar Denislava91 5 Точки

Благодаря!

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.