java常用的统计_常见的统计解决方案

最近用MySQL做统计的需求比较多,这里整理一些常用的场景方便后期查阅,同时也是抛砖引玉的过程。其中包括普通的分组统计,连续的每日统计,区间范围统计。

技术:MySQL, SpringDataJpa, Kotlin

说明:文章前半部分是场景分析,后半部分是语法分析

要点:GROUP BY, UNION, DATE_FORMAT, 流程控制函数

普通分组统计

场景一:根据订单状态统计订单数量。

一个很常见,也很简单的统计需求。其中状态字段是订单实体的一个属性。参考代码:(Kotlin语法)

@Query("SELECT status, COUNT(id) FROM Order GROUP BY status")

fun summaryOrderByStatus(): Array>?

场景二:根据订单中商品类目统计订单数量和金额。

比场景一稍微麻烦了一点,商品字段是订单实体的一个属性,而类目字段才是商品实体的一个属性。参考代码:(Kotlin语法)

@Query("SELECT commodity.category, COUNT(id), SUM(finalPrice) FROM Order GROUP BY commodity.category")

fun summaryOrderByCommodityCategory(): Array>?

小结:

一)、分组统计少不了GROUP BY语句,如果需要加查询条件,请在其前面添加 WHERE 语句。

二)、统计数量用COUNT,统计总和用SUM函数,有GR

你可能感兴趣的:(java常用的统计)