Project

General

Profile

New Function #616 » DB_sensor_20241017.sql

Deca Park, 10/18/2024 04:43 PM

 
1
비육돈사
2
AVERAGE_WEIGHT - 돼지 평균 몸무게
3
Temp_Out - TEMP_WEATHER_1(63) - 외부온도
4
EC_P  EC_MAN_1(9) -분뇨 EC
5
CO2  C_DOL_1(3) - 내부 이산화탄소 농도
6
Ventilation rate - VR_1(13), VR_2(14)  환기율
7
RH_Out  RH_WEATHER_1(64) - 외부 습도
8
NH3  AMM_DOL_1(4) - 내부 암모니아 농도
9
Temp  TEM_DOL_1(1) - 내부 온도
10
RH  RH_DOL_1(2)- 내부 습도
11
Temp_P  TEMP_MAN_1(7) -  분뇨 온도
12
PH_P  PH_MAN_1(8) - 분뇨 PH
13

    
14

    
15
자돈사
16
AVERAGE_WEIGHT - 돼지 평균 몸무게
17
Temp_Out - TEMP_WEATHER_1(63) - 외부온도
18
EC_P  EC_MAN_1(23) -분뇨 EC
19
CO2  C_DOL_1(17) - 내부 이산화탄소 농도
20
Ventilation rate - VR_1(27), VR_2(28)  환기율
21
RH_Out  RH_WEATHER_1(64) - 외부 습도
22
NH3  AMM_DOL_1(18) - 내부 암모니아 농도
23
Temp  TEM_DOL_1(15) - 내부 온도
24
RH  RH_DOL_1(16)- 내부 습도
25
Temp_P  TEMP_MAN_1(21) -  분뇨 온도
26
PH_P  PH_MAN_1(22) - 분뇨 PH
27
비육돈사, 자돈사 모두 메탄 센서는 CH4 - MET_1(203)  내부 메탄 농도’  사용하시면 됩니다.
28

    
29

    
30
--
31
-- Common
32
--
33
1.DB tables: sensor_info_yyyymm
34
- tables are decided by simulation from~to condition (PERIOD_FR~PERIOD_TO)
35
- if simulation period includes multiple yyyymm, use UNION ALL
36

    
37
2.VR 
38
  자돈사   : ((SQRT(2*NVL(VR1,0)/1.3)*0.096) + (SQRT(2*NVL(VR2,0)/1.3)*0.126))/76.43097*60
39
  비육돈사 : ((SQRT(2*NVL(VR1,0)/1.3)*0.096) + (SQRT(2*NVL(VR2,0)/1.3)*0.126))/119.04057*60
40

    
41
--
42
-- if 축사선택(select house) is selected with 비육돈사 (porker house)
43
--
44
SELECT S.create_dt
45
       ,ROUND(W.AVERAGE_WEIGHT,2) AS AVERAGE_WEIGHT
46
       ,ROUND(F.FEED_WEIGHT,2) AS FEED_WEIGHT
47
       ,S.Temp_Out
48
       ,S.EC_P
49
       ,S.CO2
50
       ,ROUND(((SQRT(2*NVL(VR1,0)/1.3)*0.096) + (SQRT(2*NVL(VR2,0)/1.3)*0.126))/119.04057*60, 2) AS "Ventilation rate"
51
       ,S.RH_Out
52
       ,S.NH3
53
       ,S.Temp
54
       ,S.RH
55
       ,S.Temp_P
56
       ,S.PH_P
57
       ,S.CH4
58
  FROM (
59
      SELECT timestamp AS create_dt
60
             ,ROUND(NVL(MAX(IF(sensor_id=63, sensor_value, NULL)),0), 2) AS Temp_Out
61
             ,ROUND(MAX(IF(sensor_id=9, sensor_value, NULL)), 2) AS EC_P
62
             ,ROUND(MAX(IF(sensor_id=3, sensor_value, NULL)), 2) AS CO2
63
             ,ROUND(MAX(IF(sensor_id=13, sensor_value, NULL)), 2) AS VR1
64
             ,ROUND(MAX(IF(sensor_id=14, sensor_value, NULL)), 2) AS VR2
65
             ,ROUND(MAX(IF(sensor_id=64, sensor_value, NULL)), 2) AS RH_Out
66
             ,ROUND(MAX(IF(sensor_id=4, sensor_value, NULL)), 2) AS NH3
67
             ,ROUND(MAX(IF(sensor_id=1, sensor_value, NULL)), 2) AS Temp
68
             ,ROUND(MAX(IF(sensor_id=2, sensor_value, NULL)), 2) AS RH
69
             ,ROUND(MAX(IF(sensor_id=7, sensor_value, NULL)), 2) AS Temp_P
70
             ,ROUND(MAX(IF(sensor_id=8, sensor_value, NULL)), 2) AS PH_P
71
             ,ROUND(MAX(IF(sensor_id=203, sensor_value, NULL)), 2) AS CH4
72
       FROM sensor_info_202409
73
      WHERE DATE_FORMAT(timestamp, '%Y%m%d') BETWEEN '20240901' AND '20241014'
74
      GROUP BY timestamp
75
      UNION ALL
76
      SELECT timestamp AS create_dt
77
             ,ROUND(NVL(MAX(IF(sensor_id=63, sensor_value, NULL)),0), 2) AS Temp_Out
78
             ,ROUND(MAX(IF(sensor_id=9, sensor_value, NULL)), 2) AS EC_P
79
             ,ROUND(MAX(IF(sensor_id=3, sensor_value, NULL)), 2) AS CO2
80
             ,ROUND(MAX(IF(sensor_id=13, sensor_value, NULL)), 2) AS VR1
81
             ,ROUND(MAX(IF(sensor_id=14, sensor_value, NULL)), 2) AS VR2
82
             ,ROUND(MAX(IF(sensor_id=64, sensor_value, NULL)), 2) AS RH_Out
83
             ,ROUND(MAX(IF(sensor_id=4, sensor_value, NULL)), 2) AS NH3
84
             ,ROUND(MAX(IF(sensor_id=1, sensor_value, NULL)), 2) AS Temp
85
             ,ROUND(MAX(IF(sensor_id=2, sensor_value, NULL)), 2) AS RH
86
             ,ROUND(MAX(IF(sensor_id=7, sensor_value, NULL)), 2) AS Temp_P
87
             ,ROUND(MAX(IF(sensor_id=8, sensor_value, NULL)), 2) AS PH_P
88
             ,ROUND(MAX(IF(sensor_id=203, sensor_value, NULL)), 2) AS CH4
89
       FROM sensor_info_202410
90
      WHERE DATE_FORMAT(timestamp, '%Y%m%d') BETWEEN '20240901' AND '20241014'
91
      GROUP BY timestamp
92
      ) S
93
      LEFT JOIN AVERAGE_WEIGHT W ON S.create_dt = W.timestamp
94
      LEFT JOIN FEED_WEIGHT F ON S.create_dt = F.timestamp
95
ORDER BY S.create_dt
96

    
97

    
98

    
99
--
100
-- if 축사선택(select house) is selected with 자돈사 (pig house)
101
--
102
SELECT S.create_dt
103
       ,ROUND(W.AVERAGE_WEIGHT,2) AS AVERAGE_WEIGHT
104
       ,ROUND(F.FEED_WEIGHT,2) AS FEED_WEIGHT
105
       ,S.Temp_Out
106
       ,S.EC_P
107
       ,S.CO2
108
       ,ROUND(((SQRT(2*NVL(VR1,0)/1.3)*0.096) + (SQRT(2*NVL(VR2,0)/1.3)*0.126))/76.43097*60, 2) AS "Ventilation rate"
109
       ,S.RH_Out
110
       ,S.NH3
111
       ,S.Temp
112
       ,S.RH
113
       ,S.Temp_P
114
       ,S.PH_P
115
       ,S.CH4
116
  FROM (
117
      SELECT timestamp AS create_dt
118
             ,ROUND(NVL(MAX(IF(sensor_id=63, sensor_value, NULL)),0), 2) AS Temp_Out
119
             ,ROUND(MAX(IF(sensor_id=23, sensor_value, NULL)), 2) AS EC_P
120
             ,ROUND(MAX(IF(sensor_id=17, sensor_value, NULL)), 2) AS CO2
121
             ,ROUND(MAX(IF(sensor_id=27, sensor_value, NULL)), 2) AS VR1
122
             ,ROUND(MAX(IF(sensor_id=28, sensor_value, NULL)), 2) AS VR2
123
             ,ROUND(MAX(IF(sensor_id=64, sensor_value, NULL)), 2) AS RH_Out
124
             ,ROUND(MAX(IF(sensor_id=18, sensor_value, NULL)), 2) AS NH3
125
             ,ROUND(MAX(IF(sensor_id=15, sensor_value, NULL)), 2) AS Temp
126
             ,ROUND(MAX(IF(sensor_id=16, sensor_value, NULL)), 2) AS RH
127
             ,ROUND(MAX(IF(sensor_id=21, sensor_value, NULL)), 2) AS Temp_P
128
             ,ROUND(MAX(IF(sensor_id=22, sensor_value, NULL)), 2) AS PH_P
129
             ,ROUND(MAX(IF(sensor_id=203, sensor_value, NULL)), 2) AS CH4
130
       FROM sensor_info_202409
131
      WHERE DATE_FORMAT(timestamp, '%Y%m%d') BETWEEN '20240901' AND '20241014'
132
      GROUP BY timestamp
133
      UNION ALL
134
      SELECT timestamp AS create_dt
135
             ,ROUND(NVL(MAX(IF(sensor_id=63, sensor_value, NULL)),0), 2) AS Temp_Out
136
             ,ROUND(MAX(IF(sensor_id=23, sensor_value, NULL)), 2) AS EC_P
137
             ,ROUND(MAX(IF(sensor_id=17, sensor_value, NULL)), 2) AS CO2
138
             ,ROUND(MAX(IF(sensor_id=27, sensor_value, NULL)), 2) AS VR1
139
             ,ROUND(MAX(IF(sensor_id=28, sensor_value, NULL)), 2) AS VR2
140
             ,ROUND(MAX(IF(sensor_id=64, sensor_value, NULL)), 2) AS RH_Out
141
             ,ROUND(MAX(IF(sensor_id=18, sensor_value, NULL)), 2) AS NH3
142
             ,ROUND(MAX(IF(sensor_id=15, sensor_value, NULL)), 2) AS Temp
143
             ,ROUND(MAX(IF(sensor_id=16, sensor_value, NULL)), 2) AS RH
144
             ,ROUND(MAX(IF(sensor_id=21, sensor_value, NULL)), 2) AS Temp_P
145
             ,ROUND(MAX(IF(sensor_id=22, sensor_value, NULL)), 2) AS PH_P
146
             ,ROUND(MAX(IF(sensor_id=203, sensor_value, NULL)), 2) AS CH4
147
       FROM sensor_info_202410
148
      WHERE DATE_FORMAT(timestamp, '%Y%m%d') BETWEEN '20240901' AND '20241014'
149
      GROUP BY timestamp
150
      ) S
151
      LEFT JOIN AVERAGE_WEIGHT W ON S.create_dt = W.timestamp
152
      LEFT JOIN FEED_WEIGHT F ON S.create_dt = F.timestamp
153
ORDER BY S.create_dt
(1-1/7)