KwoTradeOrderArchiveMapper.xml 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  3. <mapper namespace="com.sckw.order.dao.KwoTradeOrderArchiveMapper">
  4. <resultMap id="BaseResultMap" type="com.sckw.order.model.KwoTradeOrderArchive">
  5. <!--@mbg.generated-->
  6. <!--@Table kwo_trade_order_archive-->
  7. <id column="id" jdbcType="BIGINT" property="id" />
  8. <result column="trade_order_id" jdbcType="BIGINT" property="tradeOrderId" />
  9. <result column="goods_id" jdbcType="BIGINT" property="goodsId" />
  10. <result column="product_name" jdbcType="VARCHAR" property="productName" />
  11. <result column="product_spec" jdbcType="VARCHAR" property="productSpec" />
  12. <result column="unit_price" jdbcType="DECIMAL" property="unitPrice" />
  13. <result column="amount" jdbcType="DECIMAL" property="amount" />
  14. </resultMap>
  15. <sql id="Base_Column_List">
  16. <!--@mbg.generated-->
  17. id, trade_order_id, goods_id, product_name, product_spec, unit_price, amount
  18. </sql>
  19. <select id="summary" resultType="com.sckw.order.model.vo.KwoTradeOrderArchiveVo">
  20. SELECT
  21. product_name,
  22. product_spec,
  23. MAX(unit_price) AS maxPrice,
  24. MIN(unit_price) AS minPrice,
  25. SUM(amount) as amount,
  26. ROUND(SUM(unit_price * amount) / SUM(amount), 2) AS avgPrice,
  27. ROUND(SUM(unit_price * amount) / 10000, 2) AS salePrice,
  28. ROUND(100 * SUM(unit_price * amount) / total_sales, 2) AS percent
  29. FROM
  30. kwo_trade_order_archive
  31. CROSS JOIN
  32. (SELECT SUM(unit_price * amount) AS total_sales FROM kwo_trade_order_archive) AS t
  33. GROUP BY
  34. product_name, product_spec
  35. ORDER BY
  36. amount DESC;
  37. </select>
  38. </mapper>