Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.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,我试图以这样的方式结束,但逻辑在逃避我 SELECT entity_id , customer_email FROM sales_flat_order; 显示您可以想象的多个电子邮件地址,其中一些复制了一些唯一的电子邮件地址 我想我可以做一些类似的事情来获得计数(尽管没有成功) 即使在这一切开始起作用之后,在试图获得一个百分比后,它也会相当复杂。如何才能最好地处理此问题,并最好地修复查询 当前查询中出现的错误为 ERROR 1064 (42000): You have an erro

我试图以这样的方式结束,但逻辑在逃避我

SELECT entity_id
     , customer_email
FROM sales_flat_order;
显示您可以想象的多个电子邮件地址,其中一些复制了一些唯一的电子邮件地址

我想我可以做一些类似的事情来获得计数(尽管没有成功)

即使在这一切开始起作用之后,在试图获得一个百分比后,它也会相当复杂。如何才能最好地处理此问题,并最好地修复查询

当前查询中出现的错误为

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'SELECT customer_email FROM sales_flat_order GROUP BY customer_email HAVIN' at line 2
编辑

我的sql查询已经完成了这么多,但最终还是出现了一个错误

SELECT (COUNT(DISTINCT customer_email)) AS 'All Orders'

     , ( COUNT(DISTINCT customer_email) - (
        SELECT COUNT(*) FROM(SELECT customer_email FROM hubsales_flat_order GROUP BY customer_email HAVING COUNT(*) = 1) AS 's')
       ) AS 'Single Orders'

     , ( COUNT(DISTINCT customer_email) - (
        SELECT COUNT(*) FROM(SELECT customer_email FROM hubsales_flat_order GROUP BY customer_email HAVING COUNT(*) > 1) AS 'r')
       ) AS 'Repeat Orders'

FROM hubsales_flat_order;
错误是

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ''s')
   ) AS 'Single Orders'

很纠结,但在这里

SELECT 'All Orders' AS 'Type'
       , (
            SELECT COUNT(customer_email) FROM foodhubsales_flat_order
         ) AS 'Count'

       , CONCAT(
            ROUND(
            (
                SELECT COUNT(customer_email) FROM foodhubsales_flat_order
            ) / (
                SELECT COUNT(customer_email) FROM foodhubsales_flat_order
            ) * 100, 1), '%') AS 'Percentage'

UNION ALL

SELECT 'Single Orders' AS 'Type'
       , (
            COUNT(
                DISTINCT customer_email
            ) - (
                SELECT COUNT(*) FROM(
                    SELECT customer_email FROM foodhubsales_flat_order GROUP BY customer_email HAVING COUNT(*) > 1
                ) s
            )
         ) AS 'Count'

       , CONCAT(
            ROUND(
            (

            COUNT(
                DISTINCT customer_email
            ) - (
                SELECT COUNT(*) FROM(
                    SELECT customer_email FROM foodhubsales_flat_order GROUP BY customer_email HAVING COUNT(*) > 1
                ) s
            )
         ) / (
                SELECT COUNT(customer_email) FROM foodhubsales_flat_order
         ) * 100, 1), '%') AS 'Percentage'

FROM foodhubsales_flat_order

UNION ALL

SELECT 'Repeat Orders' AS 'Type'
       , (
            COUNT(
                customer_email
            ) - (
                SELECT COUNT(*) FROM(
                    SELECT customer_email FROM foodhubsales_flat_order GROUP BY customer_email HAVING COUNT(*) = 1
                ) s
            )
         ) AS 'Count'

       , CONCAT(
            ROUND(
            (

            COUNT(
                customer_email
            ) - (
                SELECT COUNT(*) FROM(
                    SELECT customer_email FROM foodhubsales_flat_order GROUP BY customer_email HAVING COUNT(*) = 1
                ) s
            )
         ) / (
                SELECT COUNT(customer_email) FROM foodhubsales_flat_order
         ) * 100, 1), '%') AS 'Percentage'

FROM foodhubsales_flat_order;
SELECT 'All Orders' AS 'Type'
       , (
            SELECT COUNT(customer_email) FROM foodhubsales_flat_order
         ) AS 'Count'

       , CONCAT(
            ROUND(
            (
                SELECT COUNT(customer_email) FROM foodhubsales_flat_order
            ) / (
                SELECT COUNT(customer_email) FROM foodhubsales_flat_order
            ) * 100, 1), '%') AS 'Percentage'

UNION ALL

SELECT 'Single Orders' AS 'Type'
       , (
            COUNT(
                DISTINCT customer_email
            ) - (
                SELECT COUNT(*) FROM(
                    SELECT customer_email FROM foodhubsales_flat_order GROUP BY customer_email HAVING COUNT(*) > 1
                ) s
            )
         ) AS 'Count'

       , CONCAT(
            ROUND(
            (

            COUNT(
                DISTINCT customer_email
            ) - (
                SELECT COUNT(*) FROM(
                    SELECT customer_email FROM foodhubsales_flat_order GROUP BY customer_email HAVING COUNT(*) > 1
                ) s
            )
         ) / (
                SELECT COUNT(customer_email) FROM foodhubsales_flat_order
         ) * 100, 1), '%') AS 'Percentage'

FROM foodhubsales_flat_order

UNION ALL

SELECT 'Repeat Orders' AS 'Type'
       , (
            COUNT(
                customer_email
            ) - (
                SELECT COUNT(*) FROM(
                    SELECT customer_email FROM foodhubsales_flat_order GROUP BY customer_email HAVING COUNT(*) = 1
                ) s
            )
         ) AS 'Count'

       , CONCAT(
            ROUND(
            (

            COUNT(
                customer_email
            ) - (
                SELECT COUNT(*) FROM(
                    SELECT customer_email FROM foodhubsales_flat_order GROUP BY customer_email HAVING COUNT(*) = 1
                ) s
            )
         ) / (
                SELECT COUNT(customer_email) FROM foodhubsales_flat_order
         ) * 100, 1), '%') AS 'Percentage'

FROM foodhubsales_flat_order;