Ich habe ein Problem in Bezug auf SQL-Abfrage, kann es in "plain" SQL getan werden, aber wie ich bin sicher, dass ich eine Gruppe verwenden muss Verkettung (MySQL kann nicht verwendet werden), so ist die zweite Option ORACLE-Dialekt, da es eine Oracle-Datenbank geben wird. Lassen Sie uns sagen, wir haben folgende Einheiten:Oracle ListaGG, Top 3 häufigsten Werte, in einer Spalte, nach ID
Tabelle: Tierarzt Besuche
Visit_Id,
Animal_id,
Veterinarian_id,
Sickness_code
Lasst uns sagen, dass es 100 Besuche (100 visit_id) und jeweils animal_id Besuche um 20-mal.
Ich brauche eine SELECT
, durch Animal_id mit 3 Spalten
- animal_id
- Sekunden zeigt Gesamtbetrag der Grippe Besuche für dieses bestimmte Tier gruppiert erstellen (lassen Sie uns sagen, Grippe, sickness_code = 5)
- Die dritte Spalte zeigt die drei häufigsten Krankheitscodes für jedes Tier an (die drei häufigsten Codes für diese Tier-ID)
Wie geht das? Erste und zweite Spalte sind einfach, aber dritte? Ich weiß, dass ich LISTAGG von Oracle, OVER PARTITION BY, COUNT und RANK verwenden muss, ich habe versucht, es zusammen zu binden, aber nicht wie ich erwartet: Wie sollte diese Abfrage aussehen?
Hallo! Willkommen bei StackOverflow! Könnten Sie einen kleinen Satz von Beispieldaten zusammen mit einem Beispiel für die Ausgabe bereitstellen? – dvsoukup
Bitte lesen Sie [** How-to-Ask **] (http://stackoverflow.com/help/how-to-ask) \t \t Und hier ist ein großartiger Ort, um [** START **] (http: // Spaghettidba.com/2015/04/24/how-to-post-a-t-sql-Frage-auf-einem-öffentlichen-Forum /) zu lernen, wie Sie Ihre Fragequalität verbessern und bessere Antworten erhalten. –
[** So erstellen Sie ein minimales, vollständiges und überprüfbares Beispiel **] (http://stackoverflow.com/help/mcve) Beispiel: Statt 100 Besuche verwenden Sie 10. zwei Tiere und jedes erhält 5 Besuche. und zeige das Ergebnis mit TOP 2 Ergebnis. –