当前位置: 首页 > 工具软件 > fn > 使用案例 >

Peewee fn 用法

杨学真
2023-12-01

Peewee fn 用法

  • 前言

    本文介绍的Peewee方法语法基于PostgreSQL

  • 官方文档

  • 官方文档是这样介绍fn方法的

    fn:可以调用任何SQL函数
    
  • 常用实例

    1. fn.AVG() 返回指定列的平均值,NULL值不包括在计算中。
    2. fn.SUM() 返回指定列的数目,NULL值不包括在计算中。
    3. fn.MIN() 返回指定列的最小值,NULL值不包括在计算中。
    4. fn.MAX() 返回指定列的最大值,NULL值不包括在计算中。
    5. fn.DATE() 返回指定日期时间格式列的日期格式
    6. fn.DECIMAL(10, 2) ===> decimal(10,2)中的“2”表示小数部分的位数,如果插入的值未指定小数部分或者小数部分不足两位则会自动补到2位小数,若插入的值小数部分超过了2为则会发生截断,截取前2位小数。“10”指的是整数部分加小数部分的总长度,也即插入的数字整数部分不能超过“10-2”位,否则不能成功插入,会报超出范围的错误。
    
  • 进阶实例

    1. fn.to_char() 返回指定列格式化后的字符串 e.g.: fn.to_char(18.88, '99.999') ===> 18.888; fn.to_char(model.field, '')。
    2. fn.char_length(str) 返回字符串字符数
    3. fn.array_agg() 接受一组值并返回一个数组。
    4. fn.array_agg(model.name).order_by(model.id.asc())  # array_agg(name order by id asc)
    5. fn.rank().over(partition_by=[field1, field2, or aggregation_field1], order_by=[fn.SUM(Booking.slots).desc()]) 实现rank() over(partition by filed order by filed)分区功能。
    6. fn.length() 返回指定列的长度。也可应用于order_by。e.g.: .order_by(fn.length(model.field).asc())。
    7. fn.CONCAT() 返回合并的字符串(CONCAT一定要大写,小写的concat用法不一样)。fn.CONCAT(model.id, '-', model.name) ===> '188-张三'
    

以上,还会持续更新

 类似资料: