sql >> Database teknologi >  >> RDS >> Oracle

Oracle - Få data fra det seneste år (Dynamisk)

Du kan bruge sysdate - interval '1' year for at repræsentere dagens dato for et år siden:

SELECT userID, COUNT(userID) AS count
FROM BookingTable 
WHERE Timebooked BETWEEN SYSDATE - INTERVAL '1' year AND SYSDATE
GROUP BY userID
HAVING COUNT(userID) > 2

Som @Wernfried korrekt påpegede nedenfor, ville ovenstående mislykkes den 29. februar i et skudår. Brug i stedet denne løsning:

WHERE Timebooked BETWEEN ADD_MONTHS(SYSDATE, -12) AND SYSDATE



  1. Hvad er bedre? Underforespørgsler eller indre sammenføjning af ti tabeller?

  2. få liste over tal i mellem to kolonner

  3. script(while-loop) stopper og har ingen output, når der er valgt flere kolonner

  4. Indre Sammenføjning af tre borde