Weather Observation Station 20

Sort by

recency

|

4008 Discussions

|

  • + 0 comments

    Two Different & Easy Methods For SQL Server

    1st: Manual Method

    SELECT
        CAST(AVG(LAT_N) AS DECIMAL(10,4))
    FROM
    (
        SELECT
            LAT_N,
            ROW_NUMBER() OVER (ORDER BY LAT_N) AS RN,
            COUNT(*) OVER () AS N
        FROM
            STATION
    ) AS X
    WHERE
        RN IN (FLOOR((N + 1) / 2.0), CEILING((N + 1) / 2.0));
    

    2nd: With PERCENTILE_CONT(0.5) Method:

    SELECT DISTINCT
         CAST(PERCENTILE_CONT(0.5) 
        WITHIN GROUP (ORDER BY LAT_N)
        OVER () AS DECIMAL(10,4))
    FROM STATION;
    
  • + 0 comments

    SQL SERVER

    SELECT DISTINCT ROUND( CAST(PERCENTILE_CONT(0.5) WITHIN GROUP (ORDER BY LAT_N) OVER() AS DECIMAL(10,4)), 4 ) AS median_lat FROM Station;

  • + 0 comments
    select round(a.LAT_N,4) from
    (Select 
    row_number() over (order by LAT_N) rw_nm,
    LAT_N from STATION) a
    where a.rw_nm in 
    (floor(((select count(*)total_rws from STATION)+1)/2),
    CEIL(((select count(*)total_rws from STATION)+1)/2));
    
  • + 0 comments

    In SQL Server

    DECLARE @QTD INT, @MEDIAN_INDEX_1 AS INT, @MEDIAN_INDEX_2 AS INT, @MEDIAN_VALUE FLOAT
    
    SET @QTD = (SELECT COUNT(LAT_N) FROM STATION)
    
    IF @QTD % 2 <> 0 
      BEGIN
        SET @MEDIAN_INDEX_1 = (@QTD + 1) / 2
        SET @MEDIAN_INDEX_2 = @MEDIAN_INDEX_1
        SET @MEDIAN_VALUE = (
          SELECT LAT_N FROM (
            SELECT LAT_N, ROW_NUMBER() OVER(ORDER BY LAT_N ASC) AS RN FROM STATION
          ) AS A WHERE RN = @MEDIAN_INDEX_1
        )
      END
    ELSE
      BEGIN
        SET @MEDIAN_INDEX_1 = @QTD / 2
        SET @MEDIAN_INDEX_2 = @MEDIAN_INDEX_1 + 1
        SET @MEDIAN_VALUE = (
          SELECT AVG(LAT_N) FROM (
            SELECT LAT_N, ROW_NUMBER() OVER(ORDER BY LAT_N ASC) AS RN FROM STATION
          ) AS A WHERE RN IN (@MEDIAN_INDEX_1, @MEDIAN_INDEX_2)
        )
      END
    
    SELECT CAST(ROUND(@MEDIAN_VALUE, 4, 0) AS DECIMAL(38, 4))
    
  • + 0 comments

    for oracal/postgresql

    SELECT ROUND(
        PERCENTILE_CONT(0.5) WITHIN GROUP (ORDER BY LAT_N), 4
    ) AS median_lat
    FROM STATION;