GROUP BY
মাইএসকিউএল কোয়েরিতে একাধিক কলামে এটি কি সম্ভব SELECT
? উদাহরণ স্বরূপ:
GROUP BY fV.tier_id AND 'f.form_template_id'
GROUP BY
মাইএসকিউএল কোয়েরিতে একাধিক কলামে এটি কি সম্ভব SELECT
? উদাহরণ স্বরূপ:
GROUP BY fV.tier_id AND 'f.form_template_id'
উত্তর:
হ্যাঁ, আপনি একাধিক কলাম দ্বারা দলবদ্ধ করতে পারেন। উদাহরণ স্বরূপ,
SELECT * FROM table
GROUP BY col1, col2
ফলাফলগুলি প্রথমে কল 1 দ্বারা, পরে কো 2 দ্বারা গোষ্ঠীভুক্ত হবে। মাইএসকিউএলে কলামের পছন্দটি বাম থেকে ডানে যায়।
GROUP BY
প্রযোজ্য col1+col2
। উদাহরণস্বরূপ col1 = 1, 2, 1, 2 | col2 = 1, 2, 3, 2
এবং দৌড়ানো প্রস্তাবিত হিসাবে বিপরীতে GROUP BY col1,col2
ফিরে আসবে । যেখানে কল 2 ফেরতের আরোহী ক্রমটি পরিবর্তন হবে। ডেমো: sqlfiddle.com/#!9/d5f69/1 নোট করুন যে সারি আইডি: 2 কলামগুলি উল্টানো সত্ত্বেও উভয় ক্ষেত্রেই ফিরে আসে । 1,1|1,3|2,2
1,1|2,2
GROUP BY col2, col1
1,1|2,2|1,3
2,2
GROUP BY
) দ্বারা সাজানো হয়। এবং যদি প্রথম সংজ্ঞায়িত কলামে সমান ফলাফল থাকে, তবে কেবলমাত্র দ্বিতীয় সংজ্ঞায়িত কলাম অনুসারে সমান ফলাফলের মধ্যে
SUM
সাথে ব্যবহার সম্পর্কে GROUP BY
। যদি GROUP BY
শুধুমাত্র এক কলাম, তারপর SUM
প্রতিটি স্বতন্ত্র (বিভিন্ন) এর সব মান কলাম মান গুলি sqlfiddle.com/#!9/1cbde2/2 । যদি GROUP BY
দুটি কলাম হয়। তারপরে mysql প্রথম চেক করে যদি প্রথম কলামটির মানের জন্য দ্বিতীয় কলামে বিভিন্ন মান থাকে। যদি হ্যাঁ, তবে SUM
দ্বিতীয় কলামের প্রতিটি পৃথক মান মাইএসকিএল করুন sqlfiddle.com/#!9/1cbde2/1 ।
হ্যাঁ, তবে আরও দুটি কলাম দ্বারা গ্রুপিংয়ের অর্থ কী? ঠিক আছে, এটি প্রতি সারি প্রতিটি অনন্য জুটি দ্বারা গ্রুপিংয়ের সমান। কলামগুলি তালিকাভুক্ত করার সাথে সারিগুলি বাছাই করার পদ্ধতিটি পরিবর্তিত হয়।
আপনার উদাহরণে, আপনি লিখতে হবে
GROUP BY fV.tier_id, f.form_template_id
এদিকে, কোড
GROUP BY f.form_template_id, fV.tier_id
অনুরূপ ফলাফল দেবে, তবে আলাদাভাবে সাজানো হবে।
একটি সাধারণ উদাহরণ ব্যবহার করার জন্য, আমার একটি কাউন্টার ছিল যা কোনও সাইটে দেখা পৃষ্ঠাগুলি অনুসারে অনন্য আইপি ঠিকানাগুলি সংক্ষিপ্ত করে নেওয়া দরকার। যা মূলত পৃষ্ঠার নাম এবং তারপরে আইপি দ্বারা গ্রুপিং করছে। আমি এটি DISTINCT এবং GROUP BY এর সমন্বয়ে সমাধান করেছি solved
SELECT pagename, COUNT(DISTINCT ipaddress) AS visit_count FROM log_visitors GROUP BY pagename ORDER BY visit_count DESC;
আপনি যদি একই সাথে দুটি কলাম দ্বারা গ্রুপটিকে পছন্দ করেন (আমাকে এটি প্রয়োগ করতে হবে), আমি কেবল এই বিষয়টি দেখেছি:
SELECT CONCAT (col1, '_', col2) AS Group1 ... GROUP BY Group1
SELECT CONCAT(col1, '_', col2) FROM GROUP BY col1, col2
। ফলাফলগুলি সাধারণত এই উত্তরটির মতো দেখাবে , তবে অভ্যন্তরীণ সম্পাদনটি একেবারেই আলাদা।
GROUP BY CONCAT(col1, '_', col2)
GROUP BY col1, col2
। এটি কিছু ডেটা দিয়ে ভুল ফলাফল দেবে। বলুন col1, col2
মান আছে: ('a_b', 'c')
এক সারিতে এবং ('a', 'b_c')
অন্যটিতে। এই ভুল উত্তরটি, কনক্যাট দ্বারা গ্রুপের সাথে দুটি সারি এক করে দেবে। সঠিক উত্তর হবে না।
SELECT CONCAT(col1, '_', col2) ... FROM ... GROUP BY col1, col2 ;