group by和order by在springboot中連用03

group by和order by在springboot中連用

1 mysql最初代碼

SELECT DATE_FORMAT(update_time, "%Y") AS year FROM t_daily
GROUP BY year
ORDER BY MIN(update_time) DESC;

參考鏈接

  • 1 order by查詢的必須是原本的數據,不能是處理後的數據(year)
  • 2 DATE_FORMAT(update_time, “%Y”) :將日期字段update_time格式化爲僅剩下年份
  • 3 group by和order by連用時,order by必須放在聚合函數中,聚合函數任意,不放的話報錯:
Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated column 'daily.t_daily.update_time' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

2 springboot中

@Query("select function('date_format',d.updateTime,'%Y') as year from t_daily d group by year order by MIN(d.updateTime) desc ") //按照年份
List<String> findGroupYear(); //返回年份
  • 數據渲染時發現hashmap輸出的數據是無序的,若想讓數據有序渲染到頁面,應該使用LinkedHashMap
Map<String,List<Daily>> map = new LinkedHashMap<>();
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章