Heim > Datenbank > MySQL-Tutorial > Wie kann ich mit STRING_AGG in SQL Server 2017 eindeutige Ergebnisse erzielen?

Wie kann ich mit STRING_AGG in SQL Server 2017 eindeutige Ergebnisse erzielen?

Susan Sarandon
Freigeben: 2025-01-24 06:46:10
Original
802 Leute haben es durchsucht

How Can I Get Distinct Results Using STRING_AGG in SQL Server 2017?

Eindeutige Werte mit der STRING_AGG-Funktion von SQL Server 2017 generieren

Die STRING_AGG-Funktion in SQL Server 2017 unterstützt unterschiedliche Werte nicht direkt. Mit einem zweistufigen Ansatz ist es jedoch möglich, einzigartige aggregierte Ergebnisse zu erzielen. Diese Methode vermeidet die ungültige Syntax von STRING_AGG(DISTINCT column, ',').

Die Lösung beinhaltet einen Common Table Expression (CTE) zur Vorverarbeitung der Daten. Der CTE gruppiert die Daten, um Duplikate vor der endgültigen Aggregation zu eliminieren.

Das folgende Beispiel demonstriert diese Technik. Der anfängliche Sitings CTE liefert Beispieldaten. Der CTE_Animals CTE gruppiert dann nach State, City und Siting, um redundante Einträge zu entfernen. Die Hauptabfrage verwendet dann STRING_AGG, um die eindeutigen Siting-Werte für jede State- und City-Kombination zu verketten.

<code class="language-sql">WITH
Sitings
AS
(
    SELECT * FROM (VALUES 
    (1, 'Florida', 'Orlando', 'bird'),
    (2, 'Florida', 'Orlando', 'dog'),
    (3, 'Arizona', 'Phoenix', 'bird'),
    (4, 'Arizona', 'Phoenix', 'dog'),
    (5, 'Arizona', 'Phoenix', 'bird'),
    (6, 'Arizona', 'Phoenix', 'bird'),
    (7, 'Arizona', 'Phoenix', 'bird'),
    (8, 'Arizona', 'Flagstaff', 'dog')
    ) F (ID, State, City, Siting)
)
,CTE_Animals
AS
(
    SELECT
        State, City, Siting
    FROM Sitings
    GROUP BY State, City, Siting
)
SELECT
    State, City, COUNT(*) AS [# Of Sitings], STRING_AGG(Siting,',') AS Animals
FROM CTE_Animals
GROUP BY State, City
ORDER BY
    State, City;</code>
Nach dem Login kopieren

Dieser Ansatz garantiert, dass die letzte Animals-Spalte nur eindeutige Tiersichtungen für jeden Standort enthält, während die # Of Sitings-Spalte die eindeutige Anzahl widerspiegelt. Die ORDER BY-Klausel gewährleistet eine konsistente und vorhersehbare Ausgabereihenfolge.

Das obige ist der detaillierte Inhalt vonWie kann ich mit STRING_AGG in SQL Server 2017 eindeutige Ergebnisse erzielen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage