values - w3schools sql count




SQL Server-Abfrage-Auswählen von COUNT(*) mit DISTINCT (5)

Zählen Sie alle DISTINCT-Programmnamen nach Programmtyp und drücken Sie die Nummer

SELECT COUNT(DISTINCT program_name) AS Count,
  program_type AS [Type] 
FROM cm_production 
WHERE [email protected]_number 
GROUP BY program_type

DISTINCT COUNT (*) gibt eine Zeile für jede eindeutige Zählung zurück. Was Sie wollen, ist COUNT (DISTINCT- Ausdruck ) : wertet den Ausdruck für jede Zeile in einer Gruppe aus und gibt die Anzahl eindeutiger Nicht-Null-Werte zurück.

In SQL Server 2005 habe ich eine Tabelle cm_production, die den gesamten Code auflistet, der in Produktion gebracht wurde. Die Tabelle hat ticket_number, program_type und program_name und push_number zusammen mit einigen anderen Spalten.

GOAL: Zählt alle DISTINCT-Programmnamen nach Programmtyp und drückt die Nummer

Was ich bisher habe ist:

SELECT DISTINCT COUNT(*) AS Count, program_type AS [Type] 
FROM cm_production 
WHERE [email protected]_number 
GROUP BY program_type

Das bringt mich dahin, aber es zählt alle Programmnamen, nicht die eindeutigen (was ich bei dieser Abfrage nicht erwarte). Ich denke, ich kann einfach nicht meinen Kopf darum drehen, wie ich es sagen soll, nur die verschiedenen Programmnamen zu zählen, ohne sie auszuwählen. Oder so.


Dies ist ein gutes Beispiel, bei dem Sie den Pincode erhalten möchten, der im letzten Adressfeld gespeichert wurde

SELECT DISTINCT
    RIGHT (address, 6),
    count(*) AS count
FROM
    datafile
WHERE
    address IS NOT NULL
GROUP BY
    RIGHT (address, 6)

Sie müssen eine temporäre Tabelle für die einzelnen Spalten erstellen und dann die Anzahl aus dieser Tabelle abfragen

SELECT COUNT(*) 
FROM (SELECT DISTINCT column1,column2
      FROM  tablename  
      WHERE condition ) as dt

Hier ist dt eine temporäre Tabelle


Versuche dies:

SELECT
    COUNT(program_name) AS [Count],program_type AS [Type]
    FROM (SELECT DISTINCT program_name,program_type
              FROM cm_production 
              WHERE [email protected]_number
         ) dt
    GROUP BY program_type

select  count (distinct NumTar),'PROPIAS'
from ATM_TRANe with (nolock)
where Fecha>='2014-01-01'
  AND Fecha<='2015-05-31'and NetDestino=0
  and SystemCodResp=0
group by NetDestino 
union 
select sum (contar),'FORANEAS'
from  
(
  select  count(distinct NumTar) as contar
  from ATM_TRANe with (nolock)
  where Fecha>='2014-01-01'
    AND Fecha<='2014-01-31'
    and NetDestino!=0
    and SystemCodResp=0
  group by NetDestino
)dt




tsql