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


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.