Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Moderatore di Windows e software L'avatar di URANIO
    Registrato dal
    Dec 1999
    residenza
    Casalpusterlengo (LO)
    Messaggi
    1,290

    [MYSQL vs SQLSERVER] GroupBy

    Una domanda sul groupby
    Ho una tabella post con vincolo uno a molti con commenti

    In mySQL riesco a fare
    SELECT Posts.* , count( Commenti.ID) AS numerocommenti
    FROM Posts
    LEFT OUTER JOIN Commenti ON Commenti.POSTSID = Posts.ID
    GROUP BY Posts.ID


    Il risultato sono tutti i dati del post e il numero di commenti associati

    Ma non riesco a fare la stessa cosa in SQLSERVER.
    E' una feature di mySQL o sbaglio qualcosa?

    Grazie per le risposte

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2001
    Messaggi
    363
    In SQL Server devi specificare tutti i campi che estrai nella GROUP BY ( penso anche in ANSI-92) oppure devi scrivere la query diversamente.

  3. #3
    Moderatore di Windows e software L'avatar di URANIO
    Registrato dal
    Dec 1999
    residenza
    Casalpusterlengo (LO)
    Messaggi
    1,290
    Un modo migliore per scrivere la query?

    Tipo:
    SELECT *
    FROM Posts
    LEFT OUTER JOIN (SELECT commenti.POSTSID, count() as conta
    FROM Commenti
    group by commenti.POSTSID
    ) On commenti.POSTSID = Posts.ID

    Potrebbe funzionare?
    Avete consigli per una versione più performante?

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2001
    Messaggi
    363
    SELECT P.*,C.NumeroCommenti
    FROM Posts P
    LEFT OUTER JOIN (
    SELECT
    commenti.POSTSID,
    count(IDCommento) as NumeroCommenti
    FROM Commenti
    group by commenti.POSTSID
    ) AS C
    On P.POSTSID = C.POSTSID

    Nota: IDCommento => chiave primaria in Commenti

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.