CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[SQL] - Requête compliquée

SiropTropical
SiropTropical
Niveau 10
22 octobre 2019 à 19:36:52

Bonsoir,

Je maitrise SQL de façon basique et j'aimerais faire une opération sur une table (suppression d'enregistrements). :ok:

Je voudrais passer de https://image.noelshack.com/fichiers/2019/43/2/1571765512-base.jpg à https://image.noelshack.com/fichiers/2019/43/2/1571765715-resultat.jpg

Je souhaite garder que les 3 meilleurs id par team (max 3). :ok:

Quelle est la requête à écrire svp? :ok:

godrik
godrik
Niveau 30
22 octobre 2019 à 20:04:51

Ca s'ecrit mal en SQL ce genre de chose. Il n'y a pas de fonction d'aggregation qui donne le x-eme meilleur.
C'est le genre de chose qu'il faut faire au nieau applicatif dans une transaction.

UndeadMarston6
UndeadMarston6
Niveau 10
22 octobre 2019 à 20:46:48

Je pense que c'est faisable en SQL, mais la juste avec ça comme échantillon c'est chaud. :(

SiropTropical
SiropTropical
Niveau 10
23 octobre 2019 à 21:27:18

Merci pour vos réponses bien que négatives pour répondre à ma question. :merci:

boucif
boucif
Niveau 24
23 octobre 2019 à 23:27:29

pourquoi vouloir supprimer les moins bonne team et pas plutot récuper les 3 meilleur teams avec une requête Select
Je pense il y a moyen de faire un order by note avec un select distinct sur l'id team et faire un top3

Message édité le 23 octobre 2019 à 23:28:22 par boucif
godrik
godrik
Niveau 30
24 octobre 2019 à 16:01:55

c'est sql standard top n ?

boucif
boucif
Niveau 24
24 octobre 2019 à 18:33:11

pas la même syntaxe suivant la base, j'ai l'habitude d'utiliser Sql Server
https://www.w3schools.com/sql/sql_top.asp

Message édité le 24 octobre 2019 à 18:33:22 par boucif
MrInnerPeace
MrInnerPeace
Niveau 10
27 octobre 2019 à 14:09:27

DELETE
FROM NOM_DE_TA_TABLE
WHERE id NOT IN (
SELECT *
FROM (
SELECT id
FROM NOM_DE_TA_TABLE
ORDER BY note DESC
LIMIT 3
) as temp )

FurnaceOperator
FurnaceOperator
Niveau 9
01 novembre 2019 à 10:21:53

Tu peux supprimer tous ceux pour qui il y a au moins trois meilleurs joueurs qu'eux dans la même équipe :

DELETE FROM ma_table WHERE id IN (
  SELECT id FROM ma_table AS t1 WHERE 
    (SELECT COUNT(*) FROM ma_table as t2 WHERE t2.team = t1.team AND t2.note > t1.note) >= 3)

Sous forums
  • Aide à l'achat Mac
  • Création de sites web
  • Internet
  • Macintosh
  • Création de Jeux
  • Linux
  • Programmation
  • Steam Deck
  • Hardware
La vidéo du moment