-1

i have data,

Stamp                dataField1 dataFiel2
2012-05-23 23:59:59  ....        ....
2012-05-23 23:50:00  ....        ....
2012-05-24 24:43:23  ....        ....
2012-05-24 24:12:10  ....        ....
2012-05-25 25:15:00  ....        ....
2012-05-26 25:53:59  ....        ....

and i want to select every day last row and result should look li

Stamp                dataField1 dataFiel2
2012-05-23 23:59:59  ....        ....
2012-05-24 24:43:23  ....        ....
2012-05-26 25:53:59  ....        ....
Infira
  • 167
  • 1
  • 11

4 Answers4

0
SELECT MAX(Stamp) as Last, other_column FROM table GROUP BY DAY(Stamp)
Muhammad Raheel
  • 19,823
  • 7
  • 67
  • 103
0
SELECT Stamp, dataField1, dataFiel2  FROM tableName 
GROUP BY Stamp ORDER BY Stamp ASC
Sona Rijesh
  • 1,041
  • 7
  • 32
  • 62
0

How about this?

SELECT MAX(Stamp) as Stamp, dataField1, dataField2
FROM tableName
GROUP BY DAYOFYEAR(Stamp)

I would say use DAYOFYEAR instead of DAY as everyone stated. For difference, see below link.

Demo

In this demo, DAY gives 3 rows which is INCORRECT as oppose to 4 rows using DAYOFYEAR.

Fahim Parkar
  • 30,974
  • 45
  • 160
  • 276
0

Try this query -

SELECT
  Stamp, dataField1, dataField2, dataField3
FROM
  (SELECT * FROM table ORDER BY Stamp DESC) t
GROUP BY
  DATE(Stamp)
Devart
  • 119,203
  • 23
  • 166
  • 186