Dela via


Komprimera grupper av rader (Visual Database Tools)

gäller för:SQL Server

Du kan skapa ett frågeresultat där varje resultatrad motsvarar en hel grupp rader från ursprungliga data. När du komprimerar rader finns det flera saker att tänka på:

  • Du kan eliminera dubbletter av rader Vissa frågor kan skapa resultatuppsättningar där flera identiska rader visas. Du kan till exempel skapa en resultatuppsättning där varje rad innehåller stads- och delstatsnamnet för en stad som innehåller en författare , men om en stad innehåller flera författare finns det flera identiska rader. Den resulterande SQL-filen kan se ut så här:

    SELECT city,
           state
    FROM authors;
    

    Resultatuppsättningen som genererades av föregående fråga är inte särskilt användbar. Om en stad innehåller fyra författare innehåller resultatuppsättningen fyra identiska rader. Eftersom resultatuppsättningen inte innehåller några andra kolumner än ort och delstat finns det inget sätt att skilja de identiska raderna från varandra. Ett sätt att undvika sådana duplicerade rader är att inkludera ytterligare kolumner som kan göra raderna olika. Om du till exempel inkluderar författarens namn är varje rad olika (förutsatt att inga två lika namngivna författare bor i någon stad). Den resulterande SQL-filen kan se ut så här:

    SELECT city,
           state,
           fname,
           minit,
           lname
    FROM authors;
    

    Naturligtvis eliminerar den föregående frågan symptomet, men löser inte problemet. Det innebär att resultatuppsättningen inte har några dubbletter, men det är inte längre en resultatuppsättning om städer. Om du vill eliminera dubbletter i den ursprungliga resultatuppsättningen och ändå låta varje rad beskriva en stad, kan du skapa en fråga som bara returnerar distinkta rader. Den resulterande SQL-filen kan se ut så här:

    SELECT DISTINCT city,
                    state
    FROM authors;
    

    Mer information om hur du eliminerar dubbletter finns i Exkludera dubblettrader.

  • Du kan beräkna på grupper av rader Det vill: du kan sammanfatta information i grupper med rader. Du kan till exempel skapa en resultatuppsättning där varje rad innehåller stads- och delstatsnamnet för en stad som innehåller en författare, plus antalet författare som finns i staden. Den resulterande SQL-filen kan se ut så här:

    SELECT city,
           state,
           COUNT(*)
    FROM authors
    GROUP BY city, state;
    

    Mer information om hur du beräknar för grupper av rader finns i Sammanfatta frågeresultat och Sortera och gruppera frågeresultat.

  • Du kan använda urvalsvillkor för att inkludera grupper av rader Du kan till exempel skapa en resultatuppsättning där varje rad innehåller ortens och delstatens namn på en stad som innehåller flera författare, plus antalet författare som finns i staden. Den resulterande SQL-filen kan se ut så här:

    SELECT city,
           state,
           COUNT(*)
    FROM authors
    GROUP BY city, state
    HAVING COUNT(*) > 1;
    

    Mer information om hur du tillämpar urvalskriterier på grupper av rader finns i Ange villkor för grupper och Använda HAVING- och WHERE-satser i samma fråga.