2010-07-04 1 views
1

de table Compte tenuSQL pour choisir le numéro de correction de la ligne « familles »

| id | user | 
| 1 | 1 | 
| 1 | 2 | 
| 1 | 3 | 
| 1 | 4 | 
| 2 | 5 | 
| 2 | 6 | 
| 2 | 7 | 
| 2 | 8 | 

Je veux écrire une requête qui renverra 3 lignes pour id = 1 et 3 lignes pour id = 2 (ordre n'a pas d'importance, Pourtant, je suppose qu'il peut être appliqué).

Ainsi, le résultat final devrait être quelque chose comme (Note, 3 lignes pour chaque id):

| id | user | 
| 1 | 1 | 
| 1 | 2 | 
| 1 | 3 | 
| 2 | 5 | 
| 2 | 7 | 
| 2 | 8 | 

Comment dois-je écrire ce SQL? Mes tentatives avec HAVING n'ont pas apporté quelque chose d'utile jusqu'à présent.

Merci, Maxim.

+4

Vous avez pas dit que trois lignes que vous voulez revenir pour chaque id. Pour id 1, vous avez montré les trois premiers, tandis que pour id 2, vous avez les deux premiers et le dernier. Quels sont les critères pour sélectionner les lignes? – Mike

+0

Je n'ai pas dit parce que l'ordre n'a pas d'importance, il pourrait aussi bien être aléatoire ou il pourrait être défini en utilisant l'ordre par. Comment cela affecte-t-il la solution? –

Répondre

0

Je pense que ce que vous voulez est

SELECT DISTINCT * 
    FROM my_table; 

mais ce ne serait pas la réponse à la question que vous avez dit un, ce qui semble vouloir trois rangées choisies arbitrairement, si je l'ai lu correctement.

0

Vous pouvez utiliser:

select top 3 * from [Table_Name] where id='1' or id='2' 

Questions connexes