3 Stimmen

Hilfe bei SQL-Abfrage - Brauche Feld mit höchster Summe

Ich habe eine Tabelle namens NET_REPORT mit den folgenden Feldern (neben vielen anderen):

JOBS     – a number (of jobs)
NET_DATE – date in format YYYY-MM-DD
CODE     – a three digit integer (i.e., 001, 002, etc).

Es kann mehrere Datensätze für ein einziges NET_DATE geben, jeder mit einem anderen Code.
Ich muss die maximale Anzahl von Aufträgen in einem einzigen NET_DATE über alle Codes hinweg kennen.

Ich hatte die Anfrage SELECT MAX(JOBS) as MaximumJobs FROM NET_REPORT aber so erhalte ich die maximale Anzahl von Aufträgen für ein bestimmtes NET_DATE und CODE. Stattdessen muss ich den Wert im Feld JOBS für alle Datensätze für jedes NET_DATE addieren und dann den Höchstwert aller dieser Summen ermitteln. Hat jemand eine Idee?
Danke.

2voto

Brian Webster Punkte 28576

Einfache Version

SELECT sum(JOBS) as JobCount, NET_DATE FROM NET_REPORT GROUP BY NET_DATE

Wenn Sie nach NET_DATE sortieren möchten, beginnen Sie mit der höchsten Auftragszahl

SELECT * FROM
  (SELECT sum(JOBS) as JobCount, NET_DATE FROM NET_REPORT GROUP BY NET_DATE) AS A
ORDER BY A.JobCount DESC

Wenn Sie nur das NET_DATE mit der höchsten Jobanzahl benötigen

SELECT Top 1 * FROM
  (SELECT sum(JOBS) as JobCount, NET_DATE FROM NET_REPORT GROUP BY NET_DATE) AS A
ORDER BY A.JobCount DESC

Referenzen

1voto

Andrew Cooper Punkte 31583
SELECT MAX(JobsTotal) as MaximumJobs
FROM (
    SELECT SUM(JOBS) AS JobsTotal
    FROM NET_REPORT
    GROUP BY NET_DATE
) A

1voto

DRapp Punkte 45486

Ich denke, was Sie wollen, ist die Anzahl der einzelnen Aufträge für die "wie viele Aufträge" zu einem bestimmten Datum. In Bezug auf Ihre Zählung und Summierung, habe ich diese auch hinzugefügt, nur behalten die einzelnen "Gruppe von" der net_date.

select 
      net_date,
      count( distinct jobs ) as NumberOfJobs,
      sum( jobs ) as SumOfJobs,
      max( jobs ) as MaxJobs
   from
      net_report
   group by
      net_date

Wenn Sie nach dem Datum suchen, an dem die MEISTEN einzigartigen Jobs laufen, fügen Sie der obigen Abfrage Folgendes hinzu

  order by 2 DESC limit 1

Die Sortierung nach 2 bezieht sich auf die Ordinalspalte "NumberOfJobs", Limit 1, um nur den ersten Eintrag der endgültigen "geordneten" Ergebnismenge zurückzugeben.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X