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:
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:
Demo hier:
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? –