How to GROUP and choose lowest value in SQL

前端 未结 4 1613
无人共我
无人共我 2020-12-14 09:17

I have table consisting of these fields:

 id  |   date_from  | date_to      |   price
 --------------------------------------------
 CK1     22-12-2012   29-         


        
相关标签:
4条回答
  • 2020-12-14 09:30
    select id, date_from, date_to, min(price)
    from table
    group by id, date_from, date_to
    
    0 讨论(0)
  • 2020-12-14 09:37

    Like this:

    SELECT id, date_from, date_to, MIN(price)
    FROM TableName
    GROUP BY id, date_from, date_to
    
    0 讨论(0)
  • 2020-12-14 09:41

    If your dbms support cte then you can do like this;

    Test data

    DECLARE @tbl TABLE
    (
        id VARCHAR(100),
        date_from VARCHAR(100),
        date_to VARCHAR(100),
        price INT
    )
    
    INSERT INTO @tbl
    VALUES
        ('CK1','22-12-2012','29-12-2012',800),
        ('CK1','22-12-2012','29-12-2012',1200),
        ('CK2','22-12-2012','29-12-2012',1400),
        ('CK2','22-12-2012','29-12-2012',1800),
        ('CK2','22-12-2012','29-12-2012',2200)
    

    Query

    ;WITH CTE
    AS
    (   
        SELECT
            RANK() OVER(PARTITION BY id ORDER BY price ASC) AS RowNbr,
            tbl.*
        FROM
            @tbl AS tbl
    )
    SELECT
        *
    FROM
        CTE
    WHERE
        CTE.RowNbr=1
    
    0 讨论(0)
  • 2020-12-14 09:57
    SELECT id, date_from, date_to, min(price)
    FROM my_table
    GROUP BY id, date_from, date_to
    
    0 讨论(0)
提交回复
热议问题