Dator > hur man beräknar medianen i sql

  • hur man beräknar medianen i sql


  • Beräkna medianen av ett set är mer utmanande än att bara beräkna det genomsnittliga eller medelvärdet av ett set. Lägg i syntax och komplexitet SQL och uppgiften kan verka oöverstigliga i början. Men med några enkla begrepp och ett par exempel , beräkna medianvärdet är ingen svett . Detta hur -till kommer att använda Transact- SQL för sina exempel

    Du behöver : .
    En databas som kan utföra Transact- SQL ( Microsoft SQL Server , Sybase SQL Anywhere etc.
    ) .

    Att hitta Median


    1 .
    Förstå skillnaden mellan medianen och medelvärdet av en uppsättning . Medianen är den " mittersta värdet " av en uppsättning , medan medelvärdet är medelvärdet av alla element i en uppsättning . Till exempel ges en ordnad uppsättning siffror { 1, 2, 6, 9 , 10 , 11 } , kommer median att 7,5 ( [ 6 + 9 ] /2 ) , men medelvärdet 6,5 ( [ 1 + 2 + 6 + 9 + 10 + 11 ] /6) .

    att beräkna median , räkna antalet element i uppsättningen . Om räkningen är jämn, ta genomsnittet av elementet på den plats som finns genom att räkna den totala element och dividera med två och den ståndpunkt som har hittats av att dividera det totala antalet element med 2 och lägga en . Om räkningen är udda , ta det element i den position som markerats med den totala räkna dividerat med två och avrundat till närmaste heltal .
    2 .
    skapa en ordnad uppsättning siffror med en ny integrerad index . Till exempel , om den numeriska data lagras i " num " kolumnen "data " tabell , skapa en ny temporär tabell som innehåller " num " värde med ett nytt index :

    CREATE TABLE # värden (
    ID int NOT NULL IDENTITET (1,1 ) ,
    NUM numeriska ( 9,4 )
    )

    INSERT INTO # värden ( num )
    SELECT NUM
    Från data
    ORDER BY num

    ORDER BY uttalande är mycket viktigt för att beräkna medianvärdet .
    3 .
    Välj de data från den tillfälliga bord där ID är lika med hälften av greven av poster i tabellen . Om det finns ett udda antal poster , ta medelvärdet av de två värden som slutlig median . Detta kan uppnås inom den inre frågan nedan :

    SELECT MEDEL ( num )
    från # värden mot
    JOIN (
    SELECT COUNT (* ) AS CNT
    från # värden _v
    ) C ON (
    c. ID=TAK ( _v. cnt /2,0 )
    OCH (
    _v. cnt % 2=1-CNT är udda
    ELLER (
    _v . CNT % 2=0-CNT är ännu
    OCH c. ID=( _v. cnt /2,0 ) + 1
    )
    )
    )

    Denna fråga använder en underfråga för att hitta den räkna poster så att det mittersta värdet kan fastställas . I båda fallet med en ännu räkna och ett udda antal , är användningen av taket för att runda upp ( _v. cnt /2,0 ) korrekt . ( t. ex. Även : 6 /2=3 , Odd : 7 /2=3,5 , vilket avrundas uppåt till 4 ) Dessutom, när rösträkningen ännu , tillsätt 1 ( _v. cnt /2,0 ) för att få den andra delen till i den föreslagna median .

    tips och varningar


  • Om du använder en senare version av Microsoft SQL Server , t. ex. 2005 eller 2008 kan du använda " Gemensam tabell Uttryck "i stället för att skapa en temporär tabell . Beroende på din schema och server konfiguration , kan detta ge en ökning i prestanda .

Previous:nothing Next:Lägga till en färgpalett att VB6





Relaterade artiklar


  • hur man ändrar färg kommandot i ett Visual Basic 6.0
  • hur man installerar java script på en PC
  • varför spelet testningen är viktig
  • hur man skapar ett diagram i python
  • hur man gör pusselspel i flash
  • roll underhåll av programvara
  • hur man använder en switch fall
  • hur du lägger till bilden till en kommandoknapp i Visual Basic
  • sql sökning tutorial
  • Hur konvertera en sträng till ett datumformat