Witam,
mam taki przypadek, który przerasta moje możliwości. Szczegóły w załączniku i niżej na screenie:
https://imgshare.io/image/Ni6qLp
Chodzi głównie o to, że mam 3 okresy czasowe. Dla wszystkich danych należy wyliczyć średnią bez 0. Następnie dla każdego okresu wyznaczyć wartość minimalną powyżej 15% średniej. i na samym końcu wyznaczyć wartość maksymalną z tych 3 minimum. Czy jest to wykonalne za pomocą SQL? Próbowałem coś działać w tym kierunku ale udało mi się zrobić jedynie coś takiego:
sql SELECT MIN(measurementQuantity) from measurementsdaily m where m.measurementDate >= '2019-07-01' AND m.measurementDate <= '2019-07-10' UNION SELECT MIN(measurementQuantity) from measurementsdaily m where m.measurementDate >= '2019-07-11' AND m.measurementDate <= '2019-07-20' AND UNION SELECT MIN(measurementQuantity) from measurementsdaily m where m.measurementDate >= '2019-07-21' AND m.measurementDate <= '2019-07-31'
Powyższa formuła zwraca mi jedynie minimum dla każdego z 3 okresów.
Następnie próbowałem podczepić do tego 15% jako 0,15 i średnią ale to już nie działa
sql SELECT MIN(measurementQuantity) from measurementsdaily m where m.measurementDate >= '2019-07-01' AND m.measurementDate <= '2019-07-10' AND m.measurementQuantity >= '0.15'*AVG(NULLIF(measurementQuantity,0)) UNION SELECT MIN(measurementQuantity) from measurementsdaily m where m.measurementDate >= '2019-07-11' AND m.measurementDate <= '2019-07-20' AND m.measurementQuantity >= '0.15' UNION SELECT MIN(measurementQuantity) from measurementsdaily m where m.measurementDate >= '2019-07-21' AND m.measurementDate <= '2019-07-31' AND m.measurementQuantity >= '0.15'
Czy jest ktoś kto ogarnia i ma dobre serduszko?
Bardzo proszę o zerknięcie na problem.
Z góry dziękuję.
- przykład.xlsx (10 KB) - ściągnięć: 57