এসকিউএল: কলামে প্রতিটি স্বতন্ত্র মানের গণনা কীভাবে পাবেন?


176

আমার কাছে "পোস্টস" নামে একটি এসকিউএল টেবিল রয়েছে যা দেখতে এটির মতো দেখাচ্ছে:

id | category
-----------------------
1  | 3
2  | 1
3  | 4
4  | 2
5  | 1
6  | 1
7  | 2

প্রতিটি বিভাগের নম্বর একটি বিভাগের সাথে সম্পর্কিত। আমি সব একটি পোস্টে বার প্রতিটি বিভাগের প্রদর্শিত হয় সংখ্যা বেড়ে চলেছে সম্পর্কে কিভাবে যেতে হবে এক SQL কোয়েরি ?

উদাহরণস্বরূপ, এই জাতীয় কোয়েরি প্রতীকী অ্যারে যেমন ফিরে আসতে পারে: (1:3, 2:2, 3:1, 4:1)


আমার বর্তমান পদ্ধতিটি হ'ল প্রতিটি সম্ভাব্য বিভাগের জন্য ক্যোয়ারী ব্যবহার করা যেমন:: SELECT COUNT(*) AS num FROM posts WHERE category=#এবং তারপরে রিটার্ন মানগুলি একটি চূড়ান্ত অ্যারেতে একত্রিত করে। তবে, আমি এমন একটি সমাধান খুঁজছি যা কেবলমাত্র একটি ক্যোরি ব্যবহার করে।


উত্তর:


311
SELECT
  category,
  COUNT(*) AS `num`
FROM
  posts
GROUP BY
  category

3
ধন্যবাদ! এটা ভেবেছিলাম অনেক সহজ!
জেফ গোর্টমেকার

4
@ মিশেলএরেস: উত্স?
মোবার্গ

5
"এটি হ'ল এএনএসআই স্ট্যান্ডার্ড এটিকে আপনার রক্তাক্ত বলে বোঝাচ্ছে যা স্পষ্টভাবে বোঝাচ্ছে 1
মিশেল আইরেস

@ মোবার্গ এটিই আমি শিখেছি (বৃদ্ধ লোকেরা কুসংস্কারের শিক্ষা দেয় ...)। এটি সম্পর্কে আলোচনার জন্য এখানে আড্ডার একটি ছোট্ট অংশ রয়েছে
মিশেল আইরেস

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