我有这样一张数据表:
字段名:样品种类,取样地点,取样时间,取样名称,检测值(类型是:varchar2(20))
(检测值 的填充数据有三种:阴,阳,数字)
现在我想先按前面四个字段分组:(样品种类,取样地点,取样时间,取样名称)
然后统计检测值的阴百分比,阳百分比,最大值,最小值,平均值
(如果这个组的数据填充的是阴和阳就统计阴百分比,阳百分比;如果填充的数据是数字就统计最大值,最小值,平均值)可能我说的还是不大明白,如果大家有什么问题就问;
这个问题我想可能要涉及到类型转换;
分好组以后再判断这个组的检测值的填充数据室什么;
如果是阴或阳就统计阴阳比例;
如果是数字就转换为数字流线型统计最大值,最小值,平均值;
注意分好组以后同一个组的填充的数据都一样的(阴或阳)或者是数字;
字段名:样品种类,取样地点,取样时间,取样名称,检测值(类型是:varchar2(20))
(检测值 的填充数据有三种:阴,阳,数字)
现在我想先按前面四个字段分组:(样品种类,取样地点,取样时间,取样名称)
然后统计检测值的阴百分比,阳百分比,最大值,最小值,平均值
(如果这个组的数据填充的是阴和阳就统计阴百分比,阳百分比;如果填充的数据是数字就统计最大值,最小值,平均值)可能我说的还是不大明白,如果大家有什么问题就问;
这个问题我想可能要涉及到类型转换;
分好组以后再判断这个组的检测值的填充数据室什么;
如果是阴或阳就统计阴阳比例;
如果是数字就转换为数字流线型统计最大值,最小值,平均值;
注意分好组以后同一个组的填充的数据都一样的(阴或阳)或者是数字;
取样地点,
取样时间,
取样名称,
SUM(DECODE(检测值,'阳',1,0))/COUNT(*) AS 阳占比,
SUM(DECODE(检测值,'阴',1,0))/COUNT(*) AS 阴占比,
NULL
FROM TEST
WHERE 检测值 = '阳' OR 检测值 = '阴'
GROUP BY 样品种类,
取样地点,
取样时间,
取样名称UNIONSELECT 样品种类,
取样地点,
取样时间,
取样名称,
MAX(TO_NUMBER(检测值)) AS 最大值,
MIN(TO_NUMBER(检测值)) AS 最小值,
AVG(TO_NUMBER(检测值)) AS 平均值
FROM TEST
WHERE 检测值 <> '阳' AND 检测值<> '阴'
GROUP BY 样品种类,
取样地点,
取样时间,
取样名称