2017-06-12 5 views
-1

Ich möchte fragen, wie man Gesamtreihen in der Tabelle bekommt?Wie erhält man die Gesamtzahl der Zeilen mit der Anzahl?

Wenn ich habe eine Tabelle wie folgt aus:

Img1

alles funktioniert.

Aber was, wenn ich Tisch mit 2 Spalten:

Img2

und die Summe wird 5

sein, die ich nur wollen, wie total wie mein zweites Bild zu bekommen?

Vielen Dank im Voraus

+0

Niemand Ihre Bilder ohne Klick auf einen nicht verifizierten Link zu sehen und gibt es einen Grund, warum Sie nicht beschreiben können strukturell deine Frage? –

Antwort

1

Meine ursprüngliche Antwort, die ich unten links, sehen Sie, wie Gruppierung zu verwenden, setzt nur die Zählung für die gesamte Tabelle zu erhalten. Wenn Sie Ihre erwartete Ausgabe wörtlich wollen, dann ist die einzige Option könnte eine Union-Abfrage wie folgt aus:

SELECT 
    COALESCE(t.id, 'total') AS id, 
    t.item 
FROM 
(
    SELECT CONVERT(varchar(10), id) AS id, item 
    FROM cte 
    UNION ALL 
    SELECT null, CONVERT(varchar(10), COUNT(*)) 
    FROM cte 
) t 
ORDER BY CASE WHEN t.id IS NOT NULL THEN 0 ELSE 1 END; 

Dies ergab die folgende Ausgabe im demo:

enter image description here

können Sie auch versuchen, Gruppierung mit setzt, wenn Sie nur die Zeile mit dem Gesamtwert haben möchten:

SELECT 
    id, 
    COALESCE(item, 'total') AS item, 
    COUNT(*) AS item_count 
FROM yourTable 
GROUP BY 
    GROUPING SETS((id, item),()); 

Gruppierung ist wahrscheinlich eine stärkere und flexible Möglichkeit, diese Art von Informationen als Union-Abfragen aufzunehmen.

Ausgang:

enter image description here

Demo hier:

Rextester

+0

danke für Hilfe vor. aber Ihre Antwort ist wie meine erste Tabelle ... kann ich total unter dem Namen des Elements und verschwinden item_count Tabelle? , weil ich dieses Feld nicht benötige –

+0

@MochammadHelmi Ich aktualisierte meine Antwort. –

+0

Vielen Dank, es ist Arbeit !!! –

0
SELECT COUNT(*) FROM tablename 

SELECT COUNT(columnname) FROM tablename 

In der zweiten Abfrage, schreiben Sie den Spaltennamen aus der Tabelle zählen wollen.

0
SELECT COUNT (*) FROM TABLE_NAME 

Es wird für Sie arbeiten

Verwandte Themen