Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 如何简化查询_Mysql - Fatal编程技术网

Mysql 如何简化查询

Mysql 如何简化查询,mysql,Mysql,我有一个MySQL查询。有没有办法简化查询?谢谢 SELECT `column1`,100*CAST(COUNT(*) AS FLOAT) / (SELECT COUNT(*) FROM `table`) FROM `table` GROUP BY `column1 我想计算每个组元素在总条目中的百分比。我想我复制了这个 (SELECT COUNT(*) FROM `table`) 有没有什么方法可以不使用SELECT两次就获得条目总数? 我在这里使用Mysql 8.0使用SUM()作为分

我有一个MySQL查询。有没有办法简化查询?谢谢

SELECT `column1`,100*CAST(COUNT(*) AS FLOAT) / (SELECT COUNT(*) FROM `table`) 
FROM `table`
GROUP BY `column1
我想计算每个组元素在总条目中的百分比。我想我复制了这个

(SELECT COUNT(*) FROM `table`)
有没有什么方法可以不使用SELECT两次就获得条目总数? 我在这里使用Mysql 8.0

使用
SUM()
作为分析函数来查找整个表中的总计数:

选择第1100.0列*COUNT(*)/SUM(COUNT(*)OVER()作为pct
从你的桌子上
第1列分组;

此处
SUM(COUNT(*)OVER()
查找整个表中所有组的计数之和。在计算窗口函数时,“表”位于
GROUP BY
已经发生之后。因此,它是所有组的中间表。

谢谢您的解释。我现在理解了查询的执行顺序。