Table avec les éléments suivantsSUPPRIMER avec le groupe par
CREATE TABLE [dbo].[Poll](
[PollID] [bigint] IDENTITY(1,1) NOT NULL,
[LoginID] [bigint] NOT NULL,
[FacilityID] [bigint] NOT NULL,
[PolledAt] [datetime] NOT NULL,
)
Je dois vider cette table à la nuit ... mais laissez la ligne maximale en fonction du champ PolledAt
par le champ groupped LoginID
. Signification un utilisateur (LoginID) a plusieurs lignes, à la fin de la nuit cet utilisateur ne devrait avoir qu'une seule ligne après la suppression. Cette ligne doit être la valeur MAX(PolledAt)
.
Je peux obtenir les dossiers que je ne veux supprimer avec ceci:
SELECT
LoginID,
MAX(PolledAt) AS MaxPolledAt
FROM
Poll
GROUP BY
LoginID
Mais alors je ne sais pas comment former ma suppression parce que je ne suis pas l'affichage de la clé primaire qui est le pollid. J'ai besoin de prendre le résultat de la sélection ci-dessus et supprimer tout sauf ce que select retourne.