优化sql
This commit is contained in:
@ -295,36 +295,43 @@
|
||||
</delete>
|
||||
|
||||
<select id="getPcsDataBySiteId" resultType="com.xzzn.ems.domain.vo.SiteMonitorDataVo">
|
||||
select latest.dateDay as ammeterDate,
|
||||
sum(t.daily_ac_charge_energy) as chargedCap,
|
||||
sum(t.daily_ac_discharge_energy) as disChargedCap
|
||||
from (
|
||||
SELECT p.site_id, p.device_id,DATE_FORMAT(p.data_update_time, '%m-%d') as dateDay, MAX(p.data_update_time) AS max_update_time
|
||||
FROM ems_pcs_data p
|
||||
where p.site_id = #{siteId} and p.create_time >= CURDATE() - INTERVAL #{limitTime} DAY
|
||||
GROUP BY p.site_id,p.device_id,dateDay
|
||||
) latest inner join ems_pcs_data t ON latest.site_id = t.site_id
|
||||
AND latest.device_id = t.device_id
|
||||
AND latest.max_update_time = t.data_update_time
|
||||
select CONCAT(t.date_month,'-',t.date_day) as ammeterDate,
|
||||
sum(t.daily_ac_charge_energy) as chargedCap,
|
||||
sum(t.daily_ac_discharge_energy) as disChargedCap
|
||||
from ems_pcs_data t
|
||||
inner join( SELECT p.site_id, p.device_id, p.date_month,p.date_day, MAX(p.data_update_time) AS max_update_time
|
||||
FROM ems_pcs_data p
|
||||
where p.site_id = #{siteId}
|
||||
and p.data_update_time >= CURDATE() - INTERVAL #{limitTime} DAY
|
||||
GROUP BY p.site_id,p.device_id,p.date_month,p.date_day
|
||||
) latest ON t.site_id = latest.site_id
|
||||
AND t.device_id = latest.device_id
|
||||
AND t.date_month = latest.date_month
|
||||
AND t.date_day = latest.date_day
|
||||
AND t.data_update_time = latest.max_update_time
|
||||
group by ammeterDate
|
||||
order by ammeterDate desc
|
||||
order by ammeterDate
|
||||
</select>
|
||||
|
||||
<select id="getPcsTotalChargeData" resultType="map">
|
||||
SELECT
|
||||
SUM(t.total_ac_charge_energy) AS totalChargedCap,
|
||||
SUM(t.total_ac_discharge_energy) AS totalDischargedCap,
|
||||
SUM(t.total_active_power) as gridNrtPower
|
||||
FROM (
|
||||
SELECT p.site_id, p.device_id, MAX(p.data_update_time) AS max_update_time
|
||||
FROM ems_pcs_data p inner join ems_site_setting s on p.site_id = s.site_id
|
||||
<if test="siteId != null and siteId != ''">
|
||||
where p.site_id = #{siteId}
|
||||
</if>
|
||||
GROUP BY p.site_id,p.device_id
|
||||
) latest inner join ems_pcs_data t ON latest.site_id = t.site_id
|
||||
AND latest.device_id = t.device_id
|
||||
AND latest.max_update_time = t.data_update_time
|
||||
SUM(p.total_ac_charge_energy) AS totalChargedCap,
|
||||
SUM(p.total_ac_discharge_energy) AS totalDischargedCap,
|
||||
SUM(p.total_active_power) AS gridNrtPower
|
||||
FROM ems_pcs_data p
|
||||
INNER JOIN ems_site_setting s ON p.site_id = s.site_id
|
||||
INNER JOIN ( SELECT site_id, device_id, MAX(data_update_time) AS max_update_time
|
||||
FROM ems_pcs_data
|
||||
<if test="siteId !=null and siteId !=''">
|
||||
where site_id = #{siteId}
|
||||
</if>
|
||||
GROUP BY site_id, device_id
|
||||
) latest ON p.site_id = latest.site_id
|
||||
AND p.device_id = latest.device_id
|
||||
AND p.data_update_time = latest.max_update_time
|
||||
<if test="siteId !=null and siteId !=''">
|
||||
where p.site_id = #{siteId}
|
||||
</if>
|
||||
</select>
|
||||
|
||||
<select id="getSiteRunningHeadInfo" parameterType="String" resultType="com.xzzn.ems.domain.vo.SiteMonitorRunningHeadInfoVo">
|
||||
@ -350,8 +357,9 @@
|
||||
SUM(t.daily_ac_charge_energy) AS chargeEnergy,
|
||||
SUM(t.daily_ac_discharge_energy) AS disChargeEnergy
|
||||
FROM ems_pcs_data t
|
||||
INNER JOIN ( SELECT site_id, device_id, date_month, date_day, MAX(data_update_time) AS max_update_time
|
||||
FROM ems_pcs_data GROUP BY site_id, device_id, date_month, date_day
|
||||
INNER JOIN ( SELECT site_id, device_id, date_month, date_day, MAX(data_update_time) AS max_update_time
|
||||
FROM ems_pcs_data
|
||||
GROUP BY site_id, device_id, date_month, date_day
|
||||
) max_dates ON t.site_id = max_dates.site_id
|
||||
AND t.device_id = max_dates.device_id
|
||||
AND t.date_month = max_dates.date_month
|
||||
@ -413,18 +421,16 @@
|
||||
</select>
|
||||
|
||||
<select id="getStoragePowerList" resultType="com.xzzn.ems.domain.vo.EnergyStoragePowVo">
|
||||
select t.site_id,
|
||||
t.total_active_power as pcsTotalActPower,
|
||||
t.total_reactive_power as pcsTotalReactivePower,
|
||||
t.create_time as createDate
|
||||
from ems_pcs_data t
|
||||
inner join (select site_id,create_time,MIN(device_id) as device_id
|
||||
from ems_pcs_data
|
||||
where site_id = #{siteId}
|
||||
AND create_time >= Date(#{startDate})
|
||||
AND create_time <= #{endDate}
|
||||
GROUP BY site_id,create_time
|
||||
) temp on t.site_id = temp.site_id and t.create_time = temp.create_time and t.device_id = temp.device_id
|
||||
SELECT t.site_id,
|
||||
SUM(t.total_active_power) AS pcsTotalActPower,
|
||||
SUM(t.total_reactive_power) AS pcsTotalReactivePower,
|
||||
DATE_FORMAT(t.data_update_time, '%Y-%m-%d %H:%i:00') AS createDate
|
||||
FROM ems_pcs_data t
|
||||
WHERE t.site_id = #{siteId}
|
||||
AND t.data_update_time >= Date(#{startDate})
|
||||
AND t.data_update_time <= #{endDate}
|
||||
GROUP BY t.site_id, DATE_FORMAT(t.data_update_time, '%Y-%m-%d %H:%i:00')
|
||||
ORDER BY createDate
|
||||
</select>
|
||||
|
||||
<select id="getPcsDataByMonth" resultType="com.xzzn.ems.domain.vo.SiteMonitorDataVo">
|
||||
|
||||
Reference in New Issue
Block a user