Mybatis resultMap灵活用法(使用子查询)

背景

查询广州每个景点的总流量,和每个景点每日流量

数据表 t_广州

唯一标识id 地点place 流量counts 日期date
1 动物园 100 '2018-11-11'
2 动物园 200 '2018-11-12'
3 植物园 100 '2018-11-11'

需求

统计每个地点的总流量,和每天的流量
结果示意结构如下:

{
    place: '动物园',
    allCounts: 300,
    perDay : [
        {
            date: '2018-11-11',
            counts: 100
        },
        {
            date: '2018-11-12',
            counts: 200
        }
    ]
},
{
    place: '植物园',
    allCounts: 100,
    perDay : [
        {
            date: '2018-11-11',
            counts: 100
        }
    ]
},

xml文件如下:

<select id="pageResultMapSelect" parameterType="java.util.Map" resultMap="pageResultMap">
    select date,counts from t_广州 where place=#{place} group by date
</select>
<resultMap id="pageResultMap" resultType="java.util.Map">
    <result column="place" property="place" />
    <result column="allCounts" property="allCounts" />
    <collection property="perDay" javaType="java.util.List" ofType="java.util.Map" column="(place=place)" select="pageResultMapSelect"></collection>
</resultMap>
<select id="page" parameterType="java.util.Map" resultMap="pageResultMap">
    select place,sum(counts) as allCounts from t_广州 group by place
</select>
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 关于Mongodb的全面总结 MongoDB的内部构造《MongoDB The Definitive Guide》...
    中v中阅读 32,098评论 2 89
  • 2017.08.22 周二 多云 马上就要开学了,最近是想尽一切办法让大宝尽快收心,迎接新学期的到来。趁着...
    戴骁勇阅读 266评论 0 1
  • 此刻 眼皮已发出困倦的信号 大脑却还在做不懈的抵抗 日头依旧笼罩着我 而我 在自己的狭小世界 依旧埋头奋笔疾书 镌...
    安歌音阅读 287评论 0 3
  • 你好
    至尊咖啡阅读 222评论 0 0
  • 河南驻马店市西平县的这名小学班主任的举动和家长的反应,值得每一个教师反思,同时也值得家长去深虑。今天,我一分...
    十年小雅阅读 503评论 0 0