apa yang harus saya lakukan jika saya ingin memilih bidang lain juga dari 'tabel_saya'? Dengan kata lain, nilai lain;
grep
7
bagaimana jika lebih dari satu nilai muncul dalam frekuensi yang sama (yang mana max)? Dalam hal ini, apakah tiga juga muncul dua kali? LIMIT 1 hanya akan menampilkan satu rekaman
mustafa1993
1
@ mustafa1993SELECT * FROM my_table GROUP BY value ORDER BY count(*) DESC;
Ahmed Syed
mengapa tidak berhasil saat saya menambahkan WHERE 'value_occurrence' = 1?
swisswiss
1
@swisswiss Anda harus menggunakan, HAVINGbukan WHEREdalam kasus ini.
Saya tidak tahu apakah Anda dapat menggunakan COUNT(*)langsung di ORDER BY. Saya tahu ada beberapa batasan mengenai GROUP BY/ HAVINGdan kolom agregat dan saya selalu berasumsi bahwa itu tidak akan berhasil.
Mihai Stancu
21
Mari kita pertimbangkan nama tabel sebagai tblpersondan nama kolom sebagai city. Saya ingin mengambil kota yang paling sering diulang dari kolom kota:
select city,count(*)as nor from tblperson
groupby city
having count(*)=(select max(nor)from(select city,count(*)as nor from tblperson groupby city) tblperson)
Anda juga perlu memindahkan fungsi COUNT ke bagian ORDER BY untuk menghindari kesalahan berikut: Hanya satu ekspresi yang dapat ditentukan dalam daftar pilih ketika subkueri tidak diperkenalkan dengan EXISTS
Saba Jamalian
1
Asumsi Tabel adalah " SalesLT.Customerdan Kolom yang Anda coba cari tahu adalah ' CompanyName' dan AggCompanyNamemerupakan Alias.
Select CompanyName, Count(CompanyName)as AggCompanyName from SalesLT.Customer
groupby CompanyName
OrderBy Count(CompanyName)Desc;
Jika Anda tidak dapat menggunakan LIMIT atau LIMIT bukanlah pilihan untuk alat kueri Anda. Anda dapat menggunakan "ROWNUM" sebagai gantinya, tetapi Anda akan membutuhkan sub kueri:
@Prabhu di MySQL, Anda menggunakan LIMIT 1; sintaks ditampilkan dalam jawaban yang diterima.
ToolmakerSteve
0
Jika Anda memiliki kolom ID dan Anda ingin menemukan kategori yang paling berulang dari kolom lain untuk setiap ID maka Anda dapat menggunakan kueri di bawah ini,
Jawaban:
Ganti
column
danmy_table
. Tingkatkan1
jika Anda ingin melihatN
nilai kolom yang paling umum.sumber
SELECT * FROM my_table GROUP BY value ORDER BY count(*) DESC;
WHERE 'value_occurrence' = 1
?HAVING
bukanWHERE
dalam kasus ini.Cobalah sesuatu seperti:
sumber
COUNT(*)
langsung diORDER BY
. Saya tahu ada beberapa batasan mengenaiGROUP BY
/HAVING
dan kolom agregat dan saya selalu berasumsi bahwa itu tidak akan berhasil.Mari kita pertimbangkan nama tabel sebagai
tblperson
dan nama kolom sebagaicity
. Saya ingin mengambil kota yang paling sering diulang dari kolom kota:Ini
nor
adalah nama aliasnya.sumber
Kueri di bawah ini tampaknya berfungsi dengan baik untuk saya dalam database SQL Server:
Hasil:
sumber
Untuk digunakan dengan SQL Server.
Karena tidak ada batasan dukungan perintah di dalamnya.
Anda dapat menggunakan perintah 1 teratas untuk menemukan nilai maksimum yang terjadi di kolom tertentu dalam kasus ini (nilai)
sumber
Asumsi Tabel adalah "
SalesLT.Customer
dan Kolom yang Anda coba cari tahu adalah 'CompanyName
' danAggCompanyName
merupakan Alias.sumber
Jika Anda tidak dapat menggunakan LIMIT atau LIMIT bukanlah pilihan untuk alat kueri Anda. Anda dapat menggunakan "ROWNUM" sebagai gantinya, tetapi Anda akan membutuhkan sub kueri:
sumber
ROWNUM
LIMIT 1
; sintaks ditampilkan dalam jawaban yang diterima.Jika Anda memiliki kolom ID dan Anda ingin menemukan kategori yang paling berulang dari kolom lain untuk setiap ID maka Anda dapat menggunakan kueri di bawah ini,
Meja:
Pertanyaan:
Hasil:
sumber
Salah satu cara yang saya suka gunakan adalah:
Pilih ,MENGHITUNG() sebagai VAR1 dari Table_Name
dikelompokkan menurut
memesan dengan VAR1 desc
batas 1
sumber