এসকিউএল কলামে সর্বাধিক ঘন মানটি সন্ধান করুন


122

কোনও এসকিউএল টেবিলের প্রদত্ত কলামে আমি কীভাবে সর্বাধিক ঘন মান খুঁজে পেতে পারি?

উদাহরণস্বরূপ, এই সারণির জন্য এটি ফিরে আসা উচিত twoকারণ এটি সর্বাধিক ঘন মান:

one
two
two
three


1
সম্পর্ক সম্পর্কে কি? নমুনা ডেটাতে আরও 'তিন' সারি যুক্ত করুন এবং প্রত্যাশিত ফলাফলটি নির্দিষ্ট করুন।
জার্লহ

উত্তর:


180
SELECT       `column`,
             COUNT(`column`) AS `value_occurrence` 
    FROM     `my_table`
    GROUP BY `column`
    ORDER BY `value_occurrence` DESC
    LIMIT    1;

প্রতিস্থাপন columnএবং my_table1আপনি Nকলামের সর্বাধিক সাধারণ মান দেখতে চাইলে বৃদ্ধি করুন ।


1
আমি যদি আমার মাই টেবিল থেকে অন্য ক্ষেত্রগুলি নির্বাচন করতে চাই তবে আমার কী করা উচিত? অন্য কথায়, অন্য মান;
গ্রেপ

7
যদি একাধিক মান একই সময়ে প্রদর্শিত হয় (যা সর্বোচ্চ)? এক্ষেত্রে তিনজনও যদি দুবার হাজির হন?
সীমাবদ্ধ

1
@ মোস্তফা ১৯৯৩SELECT * FROM my_table GROUP BY value ORDER BY count(*) DESC;
আহমেদ সৈয়দ

আমি যুক্ত করার পরে এটি কেন কাজ করে না WHERE 'value_occurrence' = 1?
সুইসউইস

1
@ সুইসুইস এই ক্ষেত্রে HAVINGপরিবর্তে আপনাকে অবশ্যই ব্যবহার করতে হবে WHERE
হেলবাবি

47

এর মতো কিছু চেষ্টা করুন:

SELECT       `column`
    FROM     `your_table`
    GROUP BY `column`
    ORDER BY COUNT(*) DESC
    LIMIT    1;

6
আপনি COUNT(*)সরাসরি ব্যবহার করতে পারবেন তা আমি জানতাম না ORDER BY। আমি জানতাম GROUP BY/ HAVINGএবং সামগ্রিক কলামগুলি সম্পর্কে কয়েকটি বিধিনিষেধ ছিল এবং আমি সর্বদা ধরে নিয়েছিলাম যে এটি কার্যকর হবে না।
মিহাই স্টানকু

21

আসুন আমরা সারণির নাম হিসাবে tblpersonএবং কলামের নাম হিসাবে বিবেচনা করি city। আমি শহরের কলাম থেকে সর্বাধিক পুনরাবৃত্তি শহরটি পুনরুদ্ধার করতে চাই:

 select city,count(*) as nor from tblperson
        group by city
          having count(*) =(select max(nor) from 
            (select city,count(*) as nor from tblperson group by city) tblperson)

এখানে norএকটি উপনামের নাম।


স্ট্যান্ডার্ড এসকিউএল ব্যবহারের জন্য +1 যা কোনও ডাটাবেসে কাজ করবে (যেখানে সীমাবদ্ধতা মাইএসকিউএল নির্দিষ্ট, শীর্ষস্থানীয় এসকিউএল সার্ভার নির্দিষ্ট)।
ডিলান স্মিথ

7

অনুসন্ধানের নীচে এসকিউএল সার্ভার ডাটাবেসে আমার পক্ষে ভাল কাজ করছে বলে মনে হচ্ছে:

select column, COUNT(column) AS MOST_FREQUENT
from TABLE_NAME
GROUP BY column
ORDER BY COUNT(column) DESC

ফলাফল:

column          MOST_FREQUENT
item1           highest count
item2           second highest 
item3           third higest
..
..

3

এসকিউএল সার্ভারের সাথে ব্যবহারের জন্য।

যেহেতু এতে কোনও সীমাবদ্ধতা কমান্ড সমর্থন নেই।

আপনি এই ক্ষেত্রে নির্দিষ্ট কলামে সর্বাধিক সংখ্যক মানটি পেতে শীর্ষ 1 কমান্ডটি ব্যবহার করতে পারেন (মান)

SELECT top1 
    `value`,
    COUNT(`value`) AS `value_occurrence` 
FROM     
    `my_table`
GROUP BY 
    `value`
ORDER BY 
    `value_occurrence` DESC;

নিম্নলিখিত ত্রুটিটি এড়াতে আপনাকে COUNT ফাংশনটি অর্ডার বিভাগেও স্থানান্তর করতে হবে: উপস্তিত্বটি উপস্থিতিগুলির সাথে পরিচয় না করা হলে কেবলমাত্র একটি তালিকা বাছাই তালিকায় নির্দিষ্ট করা যেতে পারে
সাবা জামালিয়ান

1

মান্য সারণীটি ' SalesLT.Customer' এবং আপনি যে কলামটি বের করার চেষ্টা করছেন তা হ'ল ' CompanyName' এবং AggCompanyNameএটি একটি উপনাম।

Select CompanyName, Count(CompanyName) as AggCompanyName from SalesLT.Customer
group by CompanyName
Order By Count(CompanyName) Desc;

0

আপনি যদি সীমাবদ্ধতা বা LIMIT টি ব্যবহার করতে না পারেন তবে আপনার ক্যোয়ারী সরঞ্জামটির জন্য বিকল্প নয়। পরিবর্তে আপনি "ROWNUM" ব্যবহার করতে পারেন তবে আপনার একটি সাব কোয়েরির প্রয়োজন হবে:

SELECT FIELD_1, ALIAS1
FROM(SELECT FIELD_1, COUNT(FIELD_1) ALIAS1
    FROM TABLENAME
    GROUP BY FIELD_1
    ORDER BY COUNT(FIELD_1) DESC)
WHERE ROWNUM = 1

মাইএসকিউএল নেইROWNUM
বারমার

এটি ওরাকল এর জন্য বৈধ তবে মাইএসকিএল নয়
প্রভু

1
মাইএসকিউএল-এ প্রভু, আপনি LIMIT 1পরিবর্তে ব্যবহার করুন; গৃহীত উত্তরে সিনট্যাক্স দেখানো হয়েছে।
নির্মাতা স্টিভ

0

যদি আপনার একটি আইডি কলাম থাকে এবং আপনি প্রতিটি আইডির জন্য অন্য কলাম থেকে সর্বাধিক পুনরাবৃত্তি বিভাগটি সন্ধান করতে চান তবে আপনি নীচের কোয়েরিটি ব্যবহার করতে পারেন,

টেবিল:

টেবিল বিষয়বস্তু

প্রশ্ন:

SELECT ID, CATEGORY, COUNT(*) AS FREQ
FROM TABLE
GROUP BY 1,2
QUALIFY ROW_NUMBER() OVER(PARTITION BY ID ORDER BY FREQ DESC) = 1;

ফলাফল:

অনুসন্ধান ফলাফল


-1

আমি ব্যবহার করতে চাই একটি উপায়:

নির্বাচন করা , COUNT টি () সারণী_নাম থেকে VAR1 হিসাবে

দ্বারা গ্রুপ

ভিএআর 1 ডেস্ক দ্বারা অর্ডার করুন

সীমা 1

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.