-1

I have a table which has

id | name    | datetime            | percentage
-----------------------------------------------
1  | amit    | 2015-06-20 18:30:00 | 60
2  | pavan   | 2015-06-20 18:30:00 | 60
3  | vineet  | 2015-06-20 18:30:00 | 50
4  | pavan   | 2015-06-21 19:30:00 | 70
5  | vineet  | 2015-06-21 19:30:00 | 70
6  | amit    | 2015-06-21 18:30:00 | 60
7  | vineet  | 2015-06-19 18:30:00 | 80

i want to select rows and order them by datetime and percentage and limit them by 1 row. i dont want multiple dates

    id | name    | datetime            | percentage
    -----------------------------------------------
    7  | vineet  | 2015-06-19 18:30:00 | 80
    1  | amit    | 2015-06-20 18:30:00 | 60   
    6  | amit    | 2015-06-21 18:30:00 | 60    
    4  | pavan   | 2015-06-21 19:30:00 | 70
amit
  • 89
  • 1
  • 13

2 Answers2

2

Try this query

select a.* from tablename a
join (select min(c.id) as id ,c.datetime
      from tablname c
      join(
         select max(percentage) as percentage, datetime
      from tablname
        group by datetime
        )  d on c.datetime=d.datetiem and c.percentage=d.percentage
      group by c.datetime) b on a.id=b.id
order by a.datetime,a.percentage
Mukesh Kalgude
  • 4,814
  • 2
  • 17
  • 32
0

Try this query

SELECT * 
    FROM mytable 
    WHERE id IN (SELECT MAX(id) 
                FROM mytable 
                GROUP BY datetime)
    ORDER BY datetime
Adrian C.
  • 1,647
  • 1
  • 23
  • 27
Akhil
  • 2,602
  • 23
  • 36