Ho seguente tabella:Filtro righe per conteggio di due colonna Valori
Card(
MembershipNumber,
EmbossLine,
status,
EmbossName
)
con dati di esempio
(0009,0321,'E0','Finn')
(0009,0322,'E1','Finn')
(0004,0356,'E0','Mary')
(0004,0398,'E0','Mary')
(0004,0382,'E1','Mary')
voglio recuperare le righe in modo che solo le righe dovrebbero apparire che hanno count
di MembershipNumber > 1
E il conteggio di status='E0' > 1
.
Per esempio La query deve restituire seguente risultato
(0004,0356,'E0','Mary')
(0004,0398,'E0','Mary')
ho la query per il filtraggio con conteggio MembershipNumber
ma riesco a capire come filtrare per stato = 'E0'. Ecco la query finora
SELECT *
FROM (SELECT *,
Count(MembershipNumber)OVER(partition BY EmbossName) AS cnt
FROM card) A
WHERE cnt > 1
Aggiungi 'WHERE stato = 'E0'' nel subquery. –
Ho fatto ma poi restituisce tutti quelli che hanno stato = 'E0'. In caso del mio esempio restituirà anche '(0009,0321, 'E0', 'Finn')'. Il che non è richiesto – Nuke
Sei sicuro, perché funziona bene sulla mia macchina: 'SELECT * FROM (SELECT *, Count (MembershipNumber) OVER (partizione EmbossName) AS cnt dalla scheda \t \t WHERE stato = 'E0 ' \t \t) A DOVE cnt> 1 ' –