उपयोग करें:
SELECT je.statusid,
COUNT(*) AS num,
(COUNT(*) / (SELECT COUNT(*)+.0
FROM JOURNAL_ENTRY) ) * 100
FROM JOURNAL_ENTRY je
GROUP BY je.statusid
फिर यह आपकी इच्छित सटीकता को स्वरूपित करने की बात है:
CAST(((COUNT(*) / (SELECT COUNT(*)+.0 FROM BCCAMPUS.dbo.COURSES_RFIP)) * 100)
AS DECIMAL(4,2))
... दो दशमलव स्थान देगा। यदि आप कोई दशमलव स्थान नहीं चाहते हैं तो परिणाम को INT पर कास्ट करें।
दोहराव को कम करने के लिए आप सीटीई का उपयोग कर सकते हैं:
WITH cte AS (
SELECT je.*
FROM JOURNAL_ENTRY je
WHERE je.user_id = 3)
SELECT c.statusid,
COUNT(*) AS num,
(COUNT(*) / (SELECT COUNT(*)+.0
FROM cte) ) * 100
FROM cte c
GROUP BY c.statusid