sql >> Database teknologi >  >> RDS >> Sqlserver

Vælg den nyeste postgruppe efter brugernavn i SQL Server 2008

Du har flere muligheder her, men ved at tilføje en ROW_NUMBER grupperet efter user og sorteret (faldende) på dit timestamp giver dig mulighed for nemt at vælge de seneste poster.

Bruger ROW_NUMBER

SELECT *
FROM   (
         SELECT ID, voting_ID, username, timestamp, XMLBallot
                , rn = ROW_NUMBER() OVER (PARTITION BY voting_ID, username ORDER BY timestamp DESC)
         FROM   Ballots
       ) bt 
WHERE  rn = 1

Alternativt kan du vælge det maksimale tidsstempel pr. bruger og deltage på det.

Bruger MAX

SELECT bt.ID, bt.voting_ID, bt.username, bt.timestamp, bt.XMLBallot
FROM   Ballots bt
       INNER JOIN (
          SELECT username, voting_ID, timestamp = MAX(timestamp)
          FROM   Ballots
          GROUP BY
                 username, voting_ID
        ) btm ON btm.username = bt.Username
                 AND btm.voting_ID = bt.voting_ID
                 AND btm.timestamp = bt.timestamp


  1. Hvordan kan jeg opnå initcap-funktionalitet i MySQL?

  2. Hvordan kan jeg fylde en kolonne med tilfældige tal i SQL? Jeg får den samme værdi i hver række

  3. Kortlæg et PostGIS-geometripunktfelt med Hibernate on Spring Boot

  4. Begræns tegn, der returneres i oracle sql-forespørgsel