En espérant que quelqu'un puisse m'aider avec ça.SQL - Obtenir plus de données avec un GROUP BY
Disons que j'ai une table appelée incoming_data avec 4 colonnes:
primary_key_id
serial_number
counter
selected_color
Je reçois des données à partir d'une source qui remplit ce tableau. La clé primaire a son identité activée donc elle ne se répète pas. Je vais obtenir des numéros de série en double avec différentes couleurs sélectionnées.
Le compteur augmente constamment en provenance de l'appareil.
Donc, ce que je veux faire est de sélectionner toutes les données que j'ai reçues aujourd'hui, regrouper les données par numéro de série et obtenir uniquement l'enregistrement avec la valeur de compteur la plus élevée.
simple:
SELECT serial_number, MAX(counter)
FROM incoming_data
GROUP BY serial number
Cela fonctionne parfaitement, sauf que je veux faire quelque chose avec les informations de couleur que j'ai reçu. Si j'ajoute de la couleur à la sélection, alors j'obtiens TOUS les enregistrements puisque tous les les couleurs que j'ai reçues ce jour-là sont différents. Cela ne marchera pas.
Si je pouvais obtenir le primary_key_id du dossier alors je pourrais juste requête pour la couleur, mais cela ne fonctionne pas non plus, puisque chaque valeur primary_key_id est différente, je les ai tous.
Des suggestions sur une meilleure technique pour ce faire?
Merci!
Quel est votre SGBDR? – Sung