涉案系统相关----工作随笔
一、This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its 错误解决办法
问题分析
我们创建函数时必须指定我们的函数是否是
- DETERMINISTIC 不确定的
- NO SQL 没有 SQL 语句,当然也不会修改数据
- READS SQL DATA 只是读取数据,当然也不会修改数据
- MODIFIES SQL DATA 要修改数据
- CONTAINS SQL 包含了 SQL 语句
解决方法
在 MySQL 中创建函数时出现这种错误的解决方法:
1、在 MySQL 数据库中执行以下语句,临时生效,重启后失效
set global log_bin_trust_function_creators=TRUE;
2、在配置文件 my.ini 的 [mysqld] 配置,永久生效
log_bin_trust_function_creators=1
二、分组获取具体数据
1、简单的说row_number()从1开始,为每一条分组记录返回一个数字,这里的ROW_NUMBER() OVER (ORDER BY xlh DESC) 是先把xlh列降序,再为降序以后的没条xlh记录返回一个序号。
2、row_number() OVER (PARTITION BY COL1 ORDER BY COL2) 表示根据COL1分组,在分组内部根据 COL2排序,而此函数计算的值就表示每组内部排序后的顺序编号(组内连续的唯一的)
举例:SELECT
t1.org_id,t1.start_date,t1.end_date,t1.stati_year_month
FROM
( SELECT ROW_NUMBER() over ( PARTITION BY org_id ORDER BY id DESC ) RowNum, s.start_date,s.end_date,s.org_id,s.stati_year_month FROM stati_vehicle_cost_month_maint s) AS t1
WHERE
RowNum = 1
获取org_id中记录最大的一条记录
浙公网安备 33010602011771号