একটি মাইএসকিউএল কোয়েরিতে DISTINCT এবং COUNT একসাথে ব্যবহার করা


125

এই সম্ভব ভালো কিছু হয়:

SELECT DISTINCT COUNT(productId) WHERE keyword='$keyword'

আমি যা চাই তা হ'ল কোনও কীওয়ার্ডের সাথে সম্পর্কিত অনন্য প্রোডাক্ট আইডির সংখ্যা পাওয়া। একই পণ্য দু'বার কোনও কীওয়ার্ড বা আরও বেশি কিছুতে যুক্ত হতে পারে তবে আমি চাইছি প্রতি আইডিতে প্রতি 1 বার গণনা করা

উত্তর:


277

ব্যবহার

SELECT COUNT(DISTINCT productId) from  table_name WHERE keyword='$keyword'

উত্তরের উত্তরটি নিকটে হওয়ায় এটি উত্তরটি আপডেট করেছে এবং এটি সিন্টেক্সিকভাবে ভুল ছিল।
রাহুল ত্রিপাঠি

আমি উত্তরগুলির বিপক্ষে যা যখন ডেটাবেসে আসে সর্বোত্তম পারফরম্যান্স দেয় না। পারফোমেন্স স্ট্যান্ডার্ড রাখা এটি সমালোচনা critical আমি @ অ্যালিস্টায়ার-হার্টের উত্তরটি দিয়ে যাব।
জেডুয়ার্টেডিজে

অন্য কিছু খুঁজতে গিয়ে কিছু শিখতে গিয়ে এই হোঁচট খেয়েছে। আমি সবসময় দিয়ে এই কাজ করেছি SELECT COUNT(DISTINCT(productId)) from table_name WHERE keyword='$keyword'। আপনার সংস্করণটি আরও ভাল দুটি প্যারাম দিয়ে যেতে চাই COUNT( )
রকিন 4 লাইফ 33

আমার অবাক করে দিয়েছি যে, "COUNT" এবং খোলার প্রথম বন্ধনের মধ্যে কোনও স্থান থাকতে পারে না - কমপক্ষে মারিয়াডিবি'র সংস্করণ 10.1.41 এ।
ড্রোজেনফিল্ড

61

আমি এই জাতীয় কিছু করব:

Select count(*), productid
from products
where keyword = '$keyword'
group by productid

এটি আপনাকে একটি তালিকা দেবে

count(*)    productid  
----------------------
 5           12345   
 3           93884   
 9           93493    

এটি আপনাকে প্রতিটি স্বতন্ত্র উত্পাদিত আইডির কতটি কীওয়ার্ডের সাথে সম্পর্কিত তা দেখতে দেয়।


31

আপনি বন্ধ ছিল :-)

select count(distinct productId) from table_name where keyword='$keyword'

উত্তরটি আপডেট হয়ে গেছে কারণ এটি একটি ভাল উত্তর হয়ে উঠতে পারে এবং এটি সিন্টেক্সিকভাবে ভুল ছিল।
রাহুল ত্রিপাঠি

19

এফওয়াইআই, এটি সম্ভবত দ্রুত

SELECT count(1) FROM (SELECT distinct productId WHERE keyword = '$keyword') temp

এই তুলনায়,

SELECT COUNT(DISTINCT productId) WHERE keyword='$keyword'

এটি দ্রুত কিনা তা নিশ্চিত নয় তবে স্বতন্ত্র কীওয়ার্ড সহ একাধিক কলামগুলি গণনা করার উপায়
ভ্ল্যাডএল

চমত্কার উত্তর। তাঁর উত্তর আমার ক্ষেত্রে কমপক্ষে 100 গুণ বেশি দ্রুত। @ অ্যালিস্টায়ারের কোড বোঝার জন্য সামান্য পরিবর্তনটি হলSELECT count(*) FROM (SELECT distinct productId WHERE keyword = '$keyword') temp
কার্তিক এস

6

এই সব কাজ কি শেষ

এটা খুব সহজ

আপনি যদি প্রতিটি কীওয়ার্ডে কত পণ্য আইডির তালিকা চান তবে এটি কোড

SELECT count(productId),  keyword  FROM `Table_name` GROUP BY keyword; 

এই মন্তব্যটির জন্য ধন্যবাদ, তার সঠিক প্রশ্নের বিশুদ্ধবাদী উত্তর নয়, তবে সম্ভবত তিনি যা খুঁজছেন, এবং যাইহোক দরকারী।
লিও

4

পৃথক পণ্য নির্বাচন করা এবং COUNT টি পণ্য প্রদর্শন করুন

এই ধরণের প্রশ্নের সম্পর্কে অন্য উত্তরের জন্য নীচের এই নমুনার মতো পণ্যের নামের স্বতন্ত্র ভিত্তিতে পণ্য ভিত্তির গণনা পাওয়ার জন্য এটি আমার আর একটি উত্তর:

সারণীর মান

select * FROM Product

গুণিত পণ্যের নাম

SELECT DISTINCT(Product_Name),
(SELECT COUNT(Product_Name) 
from Product  WHERE Product_Name = Prod.Product_Name)  
as `Product_Count`
from Product as Prod

রেকর্ড গণনা: 4; মৃত্যুদন্ড কার্যকর সময়: 2 মিমি


-5

একটি গ্রুপ দ্বারা এটি ভাল না? কিছুটা এইরকম:

SELECT COUNT(*) FROM t1 GROUP BY keywork;

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