मेरे पास एक टेबल है 'खिलाड़ी' इस तालिका में कॉलम 'ID','surname','nation' हैं मुझे एक प्रश्न की आवश्यकता है और परिणाम राष्ट्रों के लिए 4 द्वारा सीमित राष्ट्रों द्वारा खिलाड़ियों की एक सूची दिखाना चाहिए भूतपूर्व टेबल खिलाड़ी

ID   surn.. nation
1    Garcia   spa
2    smith    gbr
3    rossi    ita
4    villa    spa
5    renoir   fra
6    muller   ger
7    conti    ita
8    johnson  usa
9    james    gbr
10   lopez    spa
11   dubois   fra
12   petit    fra
13   popov    rus
14  rodriguez spa
15   weber    ger
16   ivanov   rus
17  gonzales  spa
18   wagner   ger
19   bruni    ita
20   Smirnov  rus
21   white    gbr
22   schmidt  ger
23  Armstrong usa
24    green   gbr
25   Schulz   ger 

परिणाम सेट

Nation| surname-
Spa |Garcia-
Spa| villa-
Spa| lopez-
Spa |rodriguez-
Gbr |smith-
Gbr |james-
Gbr| white-
Gbr| green -
Ita| rossi-
Ita |conti-
Ita |bruni-
Fra |renoir-
Fra| dubois-
Fra| petit-
Ger |muller-
Ger| weber-
Ger| wagner-
Ger |schmidt-
Usa |johnson -
Usa |armstrong-
Rus| popov-
Rus |ivanov-
Rus |Smirnov -
0
er mejo dei mejo 5 अप्रैल 2020, 21:11

1 उत्तर

सबसे बढ़िया उत्तर

row_number() विंडो फ़ंक्शन के साथ:

select t.nation, t.surname
from (
  select *,
    row_number() over (partition by nation order by id) rn
  from players
) t
where t.rn <= 4
order by t.nation, t.id

डेमो देखें।
या यदि SQLite का आपका संस्करण विंडो फ़ंक्शंस का समर्थन नहीं करता है:

select t.nation, t.surname
from (
  select p.*,
    (select count(*) + 1 from players where nation = p.nation and id < p.id) rn
  from players p
) t
where t.rn <= 4
order by t.nation, t.id

डेमो देखें।
परिणाम:

| nation | surname   |
| ------ | --------- |
| fra    | renoir    |
| fra    | dubois    |
| fra    | petit     |
| gbr    | smith     |
| gbr    | james     |
| gbr    | white     |
| gbr    | green     |
| ger    | muller    |
| ger    | weber     |
| ger    | wagner    |
| ger    | schmidt   |
| ita    | rossi     |
| ita    | conti     |
| ita    | bruni     |
| rus    | popov     |
| rus    | ivanov    |
| rus    | Smirnov   |
| spa    | Garcia    |
| spa    | villa     |
| spa    | lopez     |
| spa    | rodriguez |
| usa    | johnson   |
| usa    | Armstrong |
0
forpas 5 अप्रैल 2020, 22:02