Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/35.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 正在计算SQL总数的百分比(%)_Mysql_Sql - Fatal编程技术网

Mysql 正在计算SQL总数的百分比(%)

Mysql 正在计算SQL总数的百分比(%),mysql,sql,Mysql,Sql,如何使用查询执行以下操作: 获取用户在特定日期输入的所有记录,从user=root和datedt=NOW的表中选择count* 当任何字段为空时,获取用户在特定日期输入的所有记录。从表中选择count*,其中user=root,field1=和datedt=NOW 返回包含空字段的记录的百分比 SQL表 -- phpMyAdmin SQL Dump -- version 5.0.2 -- https://www.phpmyadmin.net/ -- -- Host: 127.0.0.1:330

如何使用查询执行以下操作:

获取用户在特定日期输入的所有记录,从user=root和datedt=NOW的表中选择count* 当任何字段为空时,获取用户在特定日期输入的所有记录。从表中选择count*,其中user=root,field1=和datedt=NOW 返回包含空字段的记录的百分比 SQL表

 -- phpMyAdmin SQL Dump
-- version 5.0.2
-- https://www.phpmyadmin.net/
--
-- Host: 127.0.0.1:3306
-- Tempo de geração: 16-Abr-2021 às 23:17
-- Versão do servidor: 5.7.31
-- versão do PHP: 7.3.21

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
START TRANSACTION;
SET time_zone = "+00:00";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;

--
-- Banco de dados: `db_test`
--

-- --------------------------------------------------------

--
-- Estrutura da tabela `tbl`
--

DROP TABLE IF EXISTS `tbl`;
CREATE TABLE IF NOT EXISTS `tbl` (
  `user` varchar(255) NOT NULL,
  `field1` varchar(255) NOT NULL,
  `dt` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

--
-- Extraindo dados da tabela `tbl`
--

INSERT INTO `tbl` (`user`, `field1`, `dt`) VALUES
('root', 'not empty', '2021-04-17 00:17:27'),
('root', '', '2021-04-17 00:17:27');
COMMIT;

/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
示例表

+------+-----------+
| user |  field1   |
+------+-----------+
| root | not empty |
| root |           |
+------+-----------+
预期产量

+------+-------------------------------------+
| user | perc_register_that_have_empty_field |
+------+-------------------------------------+
| root |                                  50 |
+------+-------------------------------------+

你可以数一个表达式。例如:

SELECT 
  sum(case when field1 = '' or field1 is null then 1 else 0 end) /
  count(*) as perc_register_that_have_empty_field
from t 
WHERE user = 'root' and date(dt) = curdate()
结果:

 perc_register_that_have_empty_field 
 ----------------------------------- 
 0.4000                              

请参阅运行示例。

不要习惯双引号字符串文本。在标准SQL和许多DBMS中,这些是用于标识符的。对于字符串文字,使用单引号。在MySQL中对字符串文本使用单引号也会使移植代码变得更容易。