Ich benutze MySQL. Ich habe eine Tabelle mit Ereignishistorie. Ich versuche das folgende zu erreichenSQL - Erhalte die Anzahl neuer Ereignisse für einen Monat und zeige nur erhöhte Werte an
1) Holen Sie sich die Ereignisse im März 2015, die länger als diejenigen im Februar 2015 dauerte, sofern das Ereignis im Februar 2015 aufgetreten ist. Ein Ereignis kann beliebig oft in einem Monat auftreten. Also, für den Anfang nehme ich nur durchschnittliche Dauer. später wird Perzentil berücksichtigen.
2) Holen Sie sich eine Liste von Ereignissen im März 2015, die für März einzigartig sind (Der Vergleich ist mit Feb zur Zeit. Jedoch in Zukunft kann ich eine Anforderung in den folgenden Zeilen haben - Holen Sie sich einzigartige Ereignisse im März verglichen mit dem letzten 6 Monate - Im Grunde versuchen, herauszufinden, wenn ein neues Ereignis eingeführt wurde)
OUTPUT
ich den Ausgang möchte für (1) zu sehen etwas wie unten
MONTH,EVENT,DURATION
2015-03,Event1,1030
2015-03,Event2,365
2015-03,Event9,1010
für (2), Würde ich die Ereignisliste gerne wie unten
MONTH,EVENT
2015-03,Event7
2015-03,Event2
Mit repect (1) oben schauen, ich bin die unten Abfrage versucht, aber kann es nicht richtig machen. Es gibt 6 Spalten in der Ausgabe, offensichtlich aufgrund der Art der Abfrage, die ich geschrieben habe.
select
*
from
(
(
select
month(EVE_DATE) as mon,
EVE_ID as task,
truncate(AVG(EVE_DURATION)/1000,2) as eve_dur
from
EVE_BOOKINGS
where
EVE_DATE >= '2015-02-01'
and EVE_DATE <= '2015-02-31'
and dayofweek(EVE_DATE) not in (1,7)
and EVE_BOOKER = 'organizer'
and EVE_ID <> ''
group by
mon,
task
order by
eve_dur desc
) t1,
(
select
month(EVE_DATE) as mon,
EVE_ID as task,
truncate(AVG(EVE_DURATION)/1000,2) as eve_dur
from
EVE_BOOKINGS
where
EVE_DATE >= '2015-03-01'
and EVE_DATE <= '2015-03-31'
and dayofweek(EVE_DATE) not in (1,7)
and EVE_BOOKER = 'organizer'
and CONFIDENCE = 'PROD'
and EVE_ID <> ''
group by
mon,
task
order by
eve_dur desc
) t2
)
where
t2.eve_dur > t1.eve_dur
Könnte ich bitte Anleitung anfordern, um diese Abfrage richtig zu machen?
sind meinen Sie für (1) alle Ereignisse in Marsch, die länger dauerte als die längste sogar im Februar? Ich gehe auch davon aus, dass wenn im Februar keine Ereignisse stattfinden würden, alle Ereignisse im März gültig wären, richtig? – Webeng
Hallo Webeng - Mit (1) meine ich Frage (1) der 2 genannten Fragen. In der Annahme, ja du bist richtig. – usert4jju7