![](/img/trans.png)
[英]Data truncated for column 'last_trade_time' at row 1 for datetime field
[英]Identify the last row of a distinct set of data in the field for an Alias Column
首先: SQL 表的行是無序的。 行沒有固有的順序。 為了使您的問題有意義,您需要一列來定義每個組中行的順序-我假設為id
。
然后:在 MySQL 8.0 中,一個選項使用 window 功能:
select t.*,
(row_number() over(partition by grp order by id desc) = 1) as last_group_flag
from mytable t
在早期版本中,您可以使用子查詢:
select t.*,
(id = (select max(t1.id) from mytable t1 where t1.grp = t.grp)) as last_group_flag
from mytable t
注意: group
是語言關鍵字,因此不是列名的好選擇。 我在查詢中使用了grp
。
您需要按item
列排序並按group column
排序以查找每個不同group
列的最后一條記錄。
使用row_number
如下:
select t.*,
Case when row_number() over(partition by group
order by item desc) = 1
then 1 else 0 end as last_group_flag
from your_table t
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.