Desidero restituire il conteggio più elevato di parole chiave che appartengono a categorie, sottocategorie e tipi specifici.Ottieni il conteggio più alto per righe specifiche
dobbiamo usare WHERE SubKat_ID IS NOT NULL and only WHERE Type = A
Quindi qualcosa di simile:
SELEZIONA 'ottenere più alto numero di parole chiave' dalla tabella WHERE Kat_ID = x E Type = 'A' e SubKat IS NOT NULL
dati Esempio:
ID Keyword_ID Kat_ID SubKat_ID Type
29 1 247 NULL A
30 2 247 NULL A
31 3 247 NULL A
32 3 247 96 A
33 4 247 96 A
34 2 247 96 A
35 3 247 95 A
37 4 33 NULL B
40 6 33 44 A
41 3 33 44 A
42 4 33 66 A
43 11 33 66 A
44 7 33 66 A
45 2 33 66 A
46 8 55 NULL A
esempi delle coppie in base ai dati in fondo del mio post:
1 ° prova:
WHERE Kat_ID = 247 And Type = 'A'
dovrebbe dice: 3 perché abbiamo: le righe 3x per 96 e 1x95
2 ° prova:
WHERE Kat_ID = 33 And Type = 'A'
dovrebbe dice: 4 perché abbiamo: righe 2x per 44 e 4x66
3 ° prova:
WHERE Kat_ID = 55 And Type = 'A'
dovrebbe dice: 0
grazie che quello che stavo cercando - dal modo in cui perché hai usato coalesce che cosa è quello per? –
Per il tuo ultimo caso, poiché non ci sono righe che soddisfano la tua condizione, la chiamata alla funzione 'max()' restituisce 'null'. La chiamata a 'coalizione' sta dicendo che se' max (t.cnt) 'è nullo, sostituirlo con' 0'. – sstan
Solo per aggiungere un post eccellente a @sstan. 'COALESCE' viene utilizzato come equivalente a' ISNULL' in quanto sopra. Ma a volte ci possono essere differenze di comportamento, quindi vale la pena controllare [MSDN] (https://msdn.microsoft.com/en-gb/library/ms190349 (v = sql.105) .aspx). Vale anche la pena sottolineare che 'ISNULL' non è ANSI Standard mentre' COALESCE' è. Ecco un buon collegamento a un comportamento più approfondito e alle differenze di rendimento [MSSQLtips - Coalesce v IsNull] (https://www.mssqltips.com/sqlservertip/2689/deciding-between-coalesce-and-isnull-in-sql-server/) – BeaglesEnd