Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

एसक्यूएल:मानक विचलन के भीतर औसत और न्यूनतम/अधिकतम दिखाएं

मानक विचलन की गणना करने के लिए, आपको सभी तत्वों के माध्यम से पुनरावृति करने की आवश्यकता है, इसलिए इसे एक प्रश्न में करना असंभव होगा। आलसी तरीका यह होगा कि इसे केवल दो चरणों में किया जाए:

DECLARE
    @Avg int,
    @StDev int

SELECT @Avg = AVG(Sales), @StDev = STDEV(Sales)
FROM tbl_sales
WHERE ...

SELECT AVG(Sales) AS AvgSales, MAX(Sales) AS MaxSales, MIN(Sales) AS MinSales
FROM tbl_sales
WHERE ...
AND Sales >= @Avg - @StDev * 3
AND Sales <= @Avg + @StDev * 3

एक और आसान विकल्प जो हो सकता है काम (वैज्ञानिक डेटा के विश्लेषण में काफी सामान्य) केवल न्यूनतम और अधिकतम x को छोड़ना होगा मान, जो काम करता है यदि आपके पास संसाधित करने के लिए बहुत अधिक डेटा है। आप ROW_NUMBER का उपयोग कर सकते हैं इसे एक कथन में करने के लिए:

WITH OrderedValues AS
(
    SELECT
        Sales,
        ROW_NUMBER() OVER (ORDER BY Sales) AS RowNumAsc,
        ROW_NUMBER() OVER (ORDER BY Sales DESC) AS RowNumDesc
)
SELECT ...
FROM tbl_sales
WHERE ...
AND Sales >
(
    SELECT MAX(Sales)
    FROM OrderedValues
    WHERE RowNumAsc <= @ElementsToDiscard
)
AND Sales <
(
    SELECT MIN(Sales)
    FROM OrderedValues
    WHERE RowNumDesc <= @ElementsToDiscard
)

ROW_NUMBER बदलें RANK के साथ या DENSE_RANK यदि आप अद्वितीय . की एक निश्चित संख्या को त्यागना चाहते हैं मान।

इन सरल तरकीबों से परे आप कुछ बहुत भारी आँकड़ों में शामिल होना शुरू करते हैं। मुझे इसी तरह के सत्यापन से निपटना है और यह SO पोस्ट के लिए बहुत अधिक सामग्री है। एक सौ अलग-अलग एल्गोरिदम हैं जिन्हें आप एक दर्जन अलग-अलग तरीकों से बदल सकते हैं। यदि संभव हो तो मैं इसे सरल रखने की कोशिश करूंगा!



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL 2012 - पिवट और अनपिवोट

  2. सी # एसक्यूएल डाटाबेस विंडोज़ फॉर्म लॉगिन सिस्टम

  3. SQL सर्वर - SQL सर्वर / TSQL ट्यूटोरियल पार्ट 111 में सेलेक्ट स्टेटमेंट में अज्ञात के साथ नल मानों को कैसे बदलें?

  4. मैं SQL सर्वर में आरेख से बैकअप स्क्रिप्ट कैसे बना सकता हूं?

  5. SQL सर्वर में 1/1/1753 का क्या महत्व है?