এসকিউএল ধারা "1 দ্বারা গ্রুপ" এর অর্থ কী?


201

কেউ আমাকে একটি SQL কোয়েরি প্রেরিত যেখানে GROUP BYদফা বিবৃতি গঠিত: GROUP BY 1

এটি ঠিক টাইপো হতে হবে? কোনও কলামে উপনাম 1 দেওয়া হয় না এর অর্থ কী হতে পারে? আমি কি ঠিক ধরে নিচ্ছি যে এটি অবশ্যই টাইপো হবে?


6
এটি কোনও টাইপ নয়, এটির ফলাফলের প্রথম কলাম
লামাক

9
নোট করুন যে এই বাক্য গঠনটি বহনযোগ্য নয়। এটি মাইএসকিএল ব্যতীত অন্যান্য ডাটাবেসে আলাদাভাবে আচরণ করবে। উদাহরণস্বরূপ ওরাকলে এটি ধ্রুবক হিসাবে বিবেচিত হয়।
রাসেল রিড

2
পুনঃটুইট দুর্ভাগ্যক্রমে (যেহেতু একটি উপনাম ব্যবহার করা কখনও কখনও খুব সহায়ক হয়) আনসি এসকিএল কলাম অর্ডিনাল দ্বারা গোষ্ঠীকরণের অনুমতি দেয় না। কারণটি হ'ল গ্রুপটি প্রক্ষেপণের আগে ঘটে। তবে তারপরে .. যখন আমরা দশ-রেখার সাথে গ্রুপিং এক্সপ্রেশন করি .. আমরা শেষ করি .. চূড়ান্ত স্কল স্টেটমেন্টে দশটি রেখার মাল্টিপলস দিয়ে ।
জাভাদবা

উত্তর:


230

এটি যার নামেই নির্বিশেষে প্রথম কলাম অনুসারে গ্রুপ করা। আপনি একই সঙ্গে করতে পারেন ORDER BY


74
SELECT account_id, open_emp_id
         ^^^^        ^^^^
          1           2

FROM account
GROUP BY 1;

উপরের প্রশ্নের GROUP BY 1মধ্যে first column in select statementযা বোঝায় account_id

আপনি নির্দিষ্ট করতে পারেন ORDER BY

দ্রষ্টব্য: অর্ডার বা গ্রুপ দ্বারা সংখ্যা সর্বদা 0 দিয়ে নয় 1 দিয়ে শুরু হয়।


25

ক্ষেত্রের নাম অনুসারে দলবদ্ধকরণের পাশাপাশি, আপনি সারণীর মধ্যে ক্ষেত্রের অর্ডিনাল বা অবস্থানের দ্বারাও গ্রুপ করতে পারেন group 1 প্রথম ক্ষেত্রের সাথে মিল রাখে (নাম নির্বিশেষে), 2 দ্বিতীয় হয়, এবং আরও অনেক কিছু।

সারণী / দর্শন কাঠামোর পরিবর্তন হতে পারে বলে আপনি নির্দিষ্ট কিছুতে গ্রুপিং করা থাকলে এটি সাধারণত অসুস্থ পরামর্শ দেওয়া হয়। অতিরিক্তভাবে, আপনি যদি টেবিলের ক্ষেত্রগুলি মুখস্ত না করে থাকেন তবে আপনার এসকিউএল কোয়েরিটি কী করছে তা দ্রুত বুঝতে অসুবিধা হতে পারে।

আপনি যদি কোনও অনন্য সেট ফিরে আসছেন বা দ্রুত কোনও অস্থায়ী অনুসন্ধান করছেন, তবে টাইপিং হ্রাস করার জন্য এটি দুর্দান্ত শর্টহ্যান্ড সিনট্যাক্স। আপনি যদি আবার কোয়েরিটি চালানোর পরিকল্পনা করেন তবে ভবিষ্যতের বিভ্রান্তি এবং অপ্রত্যাশিত জটিলতা (স্কিম পরিবর্তনের কারণে) এড়াতে তাদের প্রতিস্থাপনের পরামর্শ দেব


10
"এটি করবেন না" এর জন্য +1 এবং আমি যুক্ত করব যে এটি এড়ানোর সর্বোত্তম কারণ এটি পঠনযোগ্য নয়।
ইয়াক


5

এর অর্থ আপনার নির্বাচিত ধারাটিতে 1 ম কলাম অনুসারে বর্গক্ষেত্র গোষ্ঠী, আমরা সর্বদা এটির GROUP BY 1সাথে একসাথে ব্যবহার ORDER BY 1করি GROUP BY 1,2,3.., এটির পাশাপাশি আপনি এটি ব্যবহার করতে পারেন অবশ্যই এটি আমাদের পক্ষে সুবিধাজনক তবে আপনাকে সেই অবস্থার দিকে মনোযোগ দেওয়া দরকার ফলাফলটি আপনি তা নাও করতে পারেন যদি কেউ আপনার নির্বাচিত কলামগুলি সংশোধন করে থাকে এবং এটি ভিজ্যুয়ালাইজড না হয় তা চাই


4

এটি ধারা অনুসারে গ্রুপটির পরে আপনি যে কলামের অবস্থানটি রেখেছেন তা গোষ্ঠীভুক্ত করবে।

উদাহরণস্বরূপ আপনি চালাতে 'যদি SELECT SALESMAN_NAME, SUM(SALES) FROM SALES GROUP BY 1' এটি দ্বারা গ্রুপ হবে SALESMAN_NAME

এটি করার ক্ষেত্রে একটি ঝুঁকি হ'ল যদি আপনি চালিত হন ' Select *' এবং কোনও কারণে আপনি কলামগুলি দিয়ে একটি আলাদা ক্রমে টেবিলটি পুনরায় তৈরি করেন, এটি আপনাকে প্রত্যাশার চেয়ে আলাদা ফলাফল দেয়।

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