我有这张table:2019年特拉菲科
(
Id int,
PAÍS varchar(255),
FLUJO varchar(255),
`PUERTO PENINSULAR` varchar(255),
`GRUPO ESTADÍSTICO` varchar(255),
NATURALEZA varchar(255),
TONELADAS double
)
其中我需要选择不同类型的流量(在下面的查询中分组的变量组合)q1
SELECT distinctrow
FLUJO AS F1,
NATURALEZA AS N1,
`GRUPO ESTADÍSTICO` AS G1,
count(FLUJO) AS cuenta
FROM trafico.`2019`
group by FLUJO, NATURALEZA, `GRUPO ESTADÍSTICO`
所以我知道了每种流量组合的记录,现在我想设置一个阈值:每种流量平均值的25%,这是我通过下面的查询q2得到的
SELECT distinctrow
FLUJO AS F1,
NATURALEZA AS N1,
`GRUPO ESTADÍSTICO` AS G1,
avg(TONELADAS)/4 AS FILTRO
FROM trafico.`2019`
group by FLUJO, NATURALEZA, `GRUPO ESTADÍSTICO`
我不能做的是:计算第一个查询,但只计算满足字段“toneladas”高于第二个查询阈值条件的记录:具有这些相等变量“flujo”、“naturaleza”abd'grupo estad的记录的avg(toneladas)/4í粘贴并查询表中满足条件的所有记录,即它们的“toneladas”字段大于第二个查询的阈值(q2)。我尝试组合q1和q2查询,但没有成功。欢迎提供任何帮助。事先非常感谢。
1条答案
按热度按时间gzszwxb41#
如果要从第一个查询中筛选出行,则需要添加
WHERE
条款,当然。棘手的部分是,要过滤的值需要作为另一个查询的结果来计算。现在,解决方案是将另一个查询计算为表表达式(
f
然后将它与第一个查询连接起来。一旦这样做了,编写过滤条件就很简单了,因为两个值现在都在同一范围内。例如: