كيفية صياغة طريقة عرض فهرسة SQL Server التي تجمع القيم المتميزة؟
-
02-10-2019 - |
سؤال
لدي مخطط يتضمن جداول مثل ما يلي (مخطط الزائفة):
TABLE ItemCollection {
ItemCollectionId
...etc...
}
TABLE Item {
ItemId,
ItemCollectionId,
ContributorId
}
أحتاج إلى تجميع عدد المساهمين المتميزين لكل itemCollectionId. هذا ممكن مع استعلام مثل:
SELECT ItemCollectionId, COUNT(DISTINCT ContributorId) FROM Item
GROUP BY ItemCollectionId
أرغب كذلك في تحرير هذا التجميع مسبقًا باستخدام طريقة عرض مفهرسة (مُجسدة). يمنع المتميز فهرس يتم وضعه على هذا الرأي. هل هناك أي طريقة لإعادة صياغة هذا الأمر الذي لن ينتهك قيود العرض المفهرسة لخادم SQL؟
المحلول
غير ممكن ، على ما يبدو.
نصائح أخرى
SELECT
ItemCollectionId,
COUNT(DISTINCT ContributorId),
COUNT_BIG(*) AS DummyColumn
FROM Item
GROUP BY ItemCollectionId
سيتطلب الإجمالي count_big (*) كما ذكر في MSDN.
هذا يقول أيضًا "لا متميز" ولست متأكدًا (لم تجربه أبدًا ، آسف) إذا كان هذا ينطبق على استخدامه في إجمالي (كما لديك) ، أو SELECT DISTINCT...
لا تنتمي إلى StackOverflow