Saya memiliki masalah dengan group by
, saya ingin memilih beberapa kolom tetapi dikelompokkan hanya dengan satu kolom. Kueri di bawah ini adalah apa yang saya coba, tetapi itu memberi saya kesalahan.
SELECT Rls.RoleName,Pro.[FirstName],Pro.[LastName],Count(UR.[RoleId]) as [Count]
from [b.website-sitecore-core].[dbo].[aspnet_UsersInRoles] UR
inner join [b.website-professional-au].[dbo].[Profile] Pro
on UR.UserId = Pro.Id
inner join [b.website-sitecore-core].[dbo].[aspnet_Roles] Rls
on Rls.RoleId = UR.RoleId
inner join [b.website-professional-au].[dbo].[Gender] Gn
on gn.Id = pro.GenderId
GROUP BY Rls.RoleName;
sql-server
group-by
Nayeem Mansoori
sumber
sumber
GROUP BY A,B,C
bisa sangat berbeda dari apa yang ingin Anda dapatkan sebagai perbandinganGROUP BY A
. dan juga, biasanya kita tidak dapat menggunakan beberapa fungsi agregat untuk mendapatkan nilai kolom terkait. periksa jawaban ini sebagai solusiCatatan: Jawaban ini dimaksudkan sebagai pelengkap dari jawaban @Lukas Eder
Jika ada beberapa nilai yang ada untuk bidang,
SELECT
tetapi bidang yang Anda inginkanGROUP BY
, Anda bisa mengambil garis pencocokan teratas, daripada menunggu agregasi (MAX
) untuk kembali.jika Anda ingin SEMUA nilai dikembalikan di kolom lain itu, tetapi ingin menciutkannya menjadi satu entri, lihat: https://www.simple-talk.com/sql/t-sql-programming/concatenating-row-values-in -transact-sql /
sumber