<select id="getVillageList" resultType="com.netintech.app.domain.Community">SELECT(SELECTcount(1)FROM biz_person
WHEREtype<3and villageCode=#{code}) as numberOfTenants,(SELECT count(1) FROM biz_personWHEREtype=3and villageCode=#{code})as residents,(SELECT count(1) FROM biz_personWHEREtype=4and villageCode=#{code})as numberOfForeigners,(SELECT count(DISTINCT buildingCode)FROM biz_person
WHERE
villageCode =#{code}) as buildingCount,(SELECT villageName
FROM biz_person
WHERE
villageCode=#{code}LIMIT1)as name,#{code} as code</select>
SELECT
villageName as name,
villageCode as code,
sum(case when type < 3 then 1 else 0 end) numberOfTenants,
sum(case when type = 3 then 1 else 0 end) residents,
sum(case when type = 4 then 1 else 0 end) numberOfForeigners,
count(DISTINCT buildingCode) as buildingCount
FROM
biz_person
WHERE
townCode = #{param1}
AND communityCode = #{param2}
AND villageCode in
<foreachcollection="codes"item="code"open="("separator=","close=")">
#{code}
</foreach>
group by villageCode