আমার কাছে দুটি সারণী রয়েছে (একটি অবিচ্ছিন্ন সূচক সহ) যা নীচের আদেশগুলি দিয়ে তৈরি করা যেতে পারে:
CREATE TABLE GroupTable
(
GroupKey int NOT NULL PRIMARY KEY,
RecordCount int NOT NULL,
GroupScore float NOT NULL
);
CREATE TABLE RecordTable
(
RecordKey varchar(10) NOT NULL,
GroupKey int NOT NULL,
PRIMARY KEY(RecordKey, GroupKey)
);
CREATE UNIQUE INDEX ixGroupRecord ON RecordTable(GroupKey, RecordKey);
প্রযুক্তিগতভাবে আমার টেবিলগুলি কিছুটা আলাদা এবং আমি কয়েকটি অন্যান্য টেবিলগুলিতে যোগ দিচ্ছি, এটি আমার পরিস্থিতির জন্য উপযুক্ত প্রক্সি।
- আমি
GroupKeys
অন্য সকলের সাবসেট নয় এমন সবগুলি নির্বাচন করতে চাইGroupKey
। - প্রদত্ত সুপারসেটের জন্য, আমি
GroupScore
এর সমস্ত সাবসেট (নিজেই সহ) সর্বাধিক গ্রহন করতে চাই । - উদাহরণস্বরূপ যখন একটিতে অন্যের মতো
GroupKey
একই সঠিক উপস্থিত থাকে , তারপরে কেবল তার মধ্যে একটি ধরা পড়ে (এটি কোনটি বিবেচনা করে না)।RecordKeys
GroupKey(s)
GroupKeys
- কোন
GroupKey
যে একই সঠিক হয়েছেRecordKeys
অন্য হিসাবেGroupKey(s)
একই থাকবেGroupScore
। - অ সম্পর্কিত সম্পর্কিত
GroupKeys
একই স্কোরও থাকতে পারে।
নীচে আমি যা জিজ্ঞাসা করছি তার উদাহরণ দেওয়ার জন্য একটি উদাহরণ:
GroupTable RecordTable
GroupKey RecordCount GroupScore RecordKey GroupKey
------------------------------------ ---------------------
1 3 6.2 A 1
29 2 9.8 A 29
95 3 6.2 A 95
192 4 7.1 A 192
B 1
B 29
B 95
B 192
C 1
C 95
D 192
E 192
আমি আউটপুটটি নিম্নলিখিত হতে চাই:
GroupKey RecordCount GroupScore
-------------------------------------
1 3 9.8
192 4 9.8
GroupTable
RecordTable
প্রায় 75M সারি রয়েছে এবং এর প্রায় 115M সারি রয়েছে; তবে যোগদানের পরে এবং WHERE
ভবিষ্যদ্বাণী করার পরে , একটি নির্দিষ্ট দিনে প্রায় 20k সারি থাকবে।
যদি এই প্রশ্নটি তুচ্ছ হয় তবে আমি ক্ষমা চাইছি তবে কোনও কারণে আমি সত্যিই এটির সাথে লড়াই করছি।