আমি কীভাবে কোনও গোষ্ঠী দ্বারা ক্যারিয়ারে রেকর্ডের সংখ্যা গণনা করব,
যেমন:
select count(*)
from temptable
group by column_1, column_2, column_3, column_4
আমাকে দেয়,
1
1
2
1 + 1 + 1 = 3 পেতে আমার উপরের রেকর্ডগুলি গণনা করতে হবে।
আমি কীভাবে কোনও গোষ্ঠী দ্বারা ক্যারিয়ারে রেকর্ডের সংখ্যা গণনা করব,
যেমন:
select count(*)
from temptable
group by column_1, column_2, column_3, column_4
আমাকে দেয়,
1
1
2
1 + 1 + 1 = 3 পেতে আমার উপরের রেকর্ডগুলি গণনা করতে হবে।
উত্তর:
আপনি অন্য একটি COUNT- এ OVER ধারাটি ব্যবহার করে একটি ক্যোয়ারিতে উভয়ই করতে পারেন
select
count(*) RecordsPerGroup,
COUNT(*) OVER () AS TotalRecords
from temptable
group by column_1, column_2, column_3, column_4
column_1, column_2, column_3, column_4
)। আপনি কীভাবে ফলাফলগুলি প্রসেস করেন তার উপর নির্ভর করে এটি একটি উল্লেখযোগ্য পার্শ্ব-প্রতিক্রিয়া হতে পারে এবং নাও হতে পারে।
সহজ সমাধানটি হ'ল একটি উত্পন্ন টেবিলটি ব্যবহার করা:
Select Count(*)
From (
Select ...
From TempTable
Group By column_1, column_2, column_3, column_4
) As Z
আর একটি সমাধান হ'ল একটি কাউন্ট ডিস্টিন্ট ব্যবহার করা:
Select ...
, ( Select Count( Distinct column_1, column_2, column_3, column_4 )
From TempTable ) As CountOfItems
From TempTable
Group By column_1, column_2, column_3, column_4
আমি জানি এটি বরং দেরি হয়ে গেছে, তবে কেউই এটির পরামর্শ দেয়নি:
select count ( distinct column_1, column_2, column_3, column_4)
from temptable
এটি কমপক্ষে ওরাকলে কাজ করে - এটি পরীক্ষা করার জন্য আমার কাছে বর্তমানে অন্যান্য ডেটাবেস নেই এবং আমি টি-এসকিএল এবং মাইএসকিউএল সিনট্যাক্সের সাথে এতটা পরিচিত নই।
এছাড়াও, আমি পার্সারটিতে এটি আরও কার্যকর করার জন্য আরও দক্ষ কিনা বা সিলেক্ট স্টেটমেন্টের বাসা বেঁধে অন্যের সমাধান আরও ভাল কিনা তা আমি পুরোপুরি নিশ্চিত নই। তবে আমি এটিকে কোডিং দৃষ্টিকোণ থেকে আরও মার্জিত বলে মনে করি।
আমি সাবকিউরিটি ছাড়াই এটি অর্জনের চেষ্টা করছিলাম এবং নীচের হিসাবে প্রয়োজনীয় ফলাফল পেতে সক্ষম হয়েছি
SELECT DISTINCT COUNT(*) OVER () AS TotalRecords
FROM temptable
GROUP BY column_1, column_2, column_3, column_4
একটি সিটিই আমার পক্ষে কাজ করেছে:
with cte as (
select 1 col1
from temptable
group by column_1
)
select COUNT(col1)
from cte;
আপনি করতে পারেন:
select sum(counts) total_records from (
select count(*) as counts
from temptable
group by column_1, column_2, column_3, column_4
) as tmp
আপনি কি নীচের নীচের কোডটি কার্যকর করতে পারেন? এটি ওরাকলে কাজ করেছিল।
SELECT COUNT(COUNT(*))
FROM temptable
GROUP BY column_1, column_2, column_3, column_4
আপনি নীচের কোয়েরি দ্বারা পেতে পারেন
select column_group_by,count(*) as Coulm_name_to_be_displayed from Table group by Column;
-- For example:
select city,count(*) AS Count from people group by city
এই কোয়েরিটি চেষ্টা করে দেখুন:
select top 1 TotalRows = count(*) over ()
from yourTable
group by column1, column2
select *
, concat(cast(cast((ThirdTable.Total_Records_in_Group * 100 / ThirdTable.Total_Records_in_baseTable) as DECIMAL(5,2)) as varchar), '%') PERCENTage
from
(
SELECT FirstTable.FirstField, FirstTable.SecondField, SecondTable.Total_Records_in_baseTable, count(*) Total_Records_in_Group
FROM BaseTable FirstTable
JOIN (
SELECT FK1, count(*) AS Total_Records_in_baseTable
FROM BaseTable
GROUP BY FK1
) SecondTable
ON FirstTable.FirstField = SecondTable.FK1
GROUP BY FirstTable.FirstField, FirstTable.SecondField, SecondTable.Total_Records_in_baseTable
ORDER BY FirstTable.FirstField, FirstTable.SecondField
) ThirdTable
এসকিউএল সার্ভারে বিভাজক ক্রিয়াকলাপের মাধ্যমে একটি COUNT ওভার (পার্টিশন বাই {কলামটি বিভাগ দ্বারা) কীভাবে ব্যবহার করবেন?
উদাহরণস্বরূপ, আপনি যদি আইটেম আইডি দ্বারা পণ্য বিক্রয় গ্রুপ করতে চান এবং আপনি প্রতিটি স্বতন্ত্র আইটেম আইডিএডের একটি গণনা চান, কেবল ব্যবহার করুন:
SELECT
{columns you want} ,
COUNT(ItemID) OVER (PARTITION BY ItemID) as BandedItemCount ,
{more columns you want}... ,
FROM {MyTable}
আপনি যদি এই পদ্ধতির ব্যবহার করেন, তবে আপনি পুরো তালিকাটি ফিরিয়ে দিতে চান তা ধরে রেখে আপনি গ্রুপটি ছাড়তে পারেন - যেমন আপনি ব্যান্ডিং করতে পারেন যেখানে আপনাকে যে আইটেমগুলির ব্যান্ড করতে চলেছে তার পুরো গণনাটি জানতে হবে having ডেটা পুরো সেট, যেমন প্রতিবেদনের পরিষেবা) প্রদর্শন করতে।
BandedItemCount
ঠিক কোন মানটি থাকবে ? এটি কি আউটপুট সারিগুলির মধ্যে পার্থক্য করে? প্রশ্নকারী স্বতন্ত্র গ্রুপিং স্তরের সংখ্যা সন্ধান করছেন।