besoin d'aide pour requete "bizarre"

besoin d'aide pour requete "bizarre" - SQL/NoSQL - Programmation

Marsh Posté le 22-01-2007 à 20:36:34    

Salut,
je voudrais obtenir les 5 premières lignes pour chaque type de donnée qui est dans ma table.
Dans la table ci-dessous j'ai 2 type de données : B et C.
Je veux donc les 5 premiers B et les 5 premiers C.
 
Exemple:
N° Type
1     B
2     B
3     B
4     C
5     B  
6     C
7     C
8     B
9     C
10   C  
11   B
12   B  
13   C  
14   C
 
avec comme résultat :
N° Type
1     B
2     B
3     B
5     B  
8     B
4     C
6     C
7     C
9     C
10   C  
 
J'ai bien pensé à faire  

Code :
  1. select N°, type from table
  2. where Type = 'B'
  3. order by N° fetch first 5 rows only
  4. union
  5. select N°, type from table
  6. where Type = 'C'
  7. order by N° fetch first 5 rows only


 
mais je ne connais pas le nombre de type différents que j'ai dans ma table.
 
Ce serait pour faire en oracle. (la solution DB2 serait un +)
 
Merci


Message édité par polo021 le 22-01-2007 à 20:37:17
Reply

Marsh Posté le 22-01-2007 à 20:36:34   

Reply

Marsh Posté le 22-01-2007 à 20:38:09    

avec oracle, tu vas pleurer :D
 
faut retourne le rownum et faire un filtre dessus.
c'est tout le temps le bordel à utiliser, tu vas voir tu va rigoler :ange:
 
avec DB2, je crois qu'il support le mot clé TOP de la norme SQL.
 
Select TOP 5 champs from matable


Message édité par MagicBuzz le 22-01-2007 à 20:38:39
Reply

Marsh Posté le 22-01-2007 à 22:36:50    

Ca doit bien se faire avec des fonctions analytiques ... que ce soit sous Oracle ou avec un autre SGBD ... non ? :)

 

edit : remarque si c'est juste pour B et C en dur ... ça simplifie beaucoup ;)


Message édité par Beegee le 22-01-2007 à 22:37:21
Reply

Marsh Posté le 23-01-2007 à 01:25:14    

ouais, y'a aussi en effet des trucs genre sum over partition sous oracle, mais je sais pas si y'a rank ou row_number...


Message édité par MagicBuzz le 23-01-2007 à 01:25:39
Reply

Marsh Posté le 23-01-2007 à 08:24:29    

si, y a rank / row_number, de mémoire ...

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed