Suche nach den häufigsten Wert in sql und Bestellung von der höchsten bis zur niedrigsten (asc)
Habe ich eine einfache Abfrage.
select id, patient_id, diagnosis from dbo.diabetes_rx_tracker
group by id, patient_id, diagnosis
die häufigste Diagnose-codes müssen zu erscheinen am Anfang der Liste mit ein Graf.
Versuchte ich mit der count-Funktion.
aber es liefert alle Werte für jeden Patienten 1 anstelle der Zugabe.
select id, patient_id, count(diagnosis) from dbo.diabetes_rx_tracker
group by id, patient_id, diagnosis
Ich auch warfen Fehler bei der Bearbeitung meiner group by-Anweisung.
jegliche Hilfe würde sehr geschätzt werden. Danke.
- Die häufigste Diagnose-codes pro
id
propatient
?, oder die häufigste Diagnose-codes überhaupt? - pro id ist das, was ich Suche, leider nicht weiter.
- Und was RDBMS (SQL Server, Oracle, Postgres, MySQL) und version verwenden Sie?. Außerdem müssen Sie alle Zeilen bestellten gemeinsamen Diagnose, oder einfach nur id und patient_id?
- sql-server , ja
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dieser sieht aus wie du bist nicht aggregieren genug. Jedes Feld in deiner GRUPPE repräsentiert ein Feld für die aggregation in der Summe mit den anderen. So, dies wird nur zeigen Ihnen die Diagnosen von id, die vom Patienten, von der Diagnose. Nicht sehr hilfreich.
Um die häufigsten Diagnosen Zeitraum, entfernen Sie id und patient_id von der Gruppierung als auch:
Zu bekommen, die häufigste-codes über alle ids, entfernen patient_id von der Gruppierung und wählen Sie:
UPDATE: auf Grundlage der neuen Kriterien, das ist, was Sie wollen.