社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  DATABASE

mysql 1064错误解决语法错误的方法是什么?

Omar • 5 年前 • 1460 次点击  

我需要一些帮助,因为我是一个mysql的初学者,我试过查看其他文章,发现这个错误毫无用处。

您的SQL语法有错误;请查看对应于MySQL服务器版本的手册,在第7行的“select max(count)from(select activity,count(*)from friends group by activity”附近使用正确的语法

为什么会生成此错误,如何修复此错误?

SELECT activity
FROM (SELECT activity, count(*) FROM FRIENDS GROUP BY activity) AS getActivities
WHERE count NOT IN (
    SELECT min(count)
        FROM (SELECT activity, count(*) FROM FRIENDS GROUP BY activity ) AS maximum,
    SELECT max(count)
        FROM (SELECT activity, count(*) FROM FRIENDS GROUP BY activity) AS minimum
)
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/44892
 
1460 次点击  
文章 [ 3 ]  |  最新文章 5 年前
JuSun Lee
Reply   •   1 楼
JuSun Lee    5 年前

如何修复。

select activity from ( Select activity, count(*) as count from FRIENDS group by activity) as getActivities
     where count not in  
 (
   Select min(count) as count from (Select activity, count(*) from FRIENDS group by activity ) as maximum
   union all
   SELECT max(count) as count from (Select activity, count(*) from FRIENDS group by activity) as minimum
 )
Au Nguyen
Reply   •   2 楼
Au Nguyen    5 年前

SQL字符串中有错误:

  • 不是别名计数(*)列

  • 在条件不在的情况下没有组2表

尝试此查询:

SELECT activity 
FROM ( SELECT activity, COUNT(*) AS Number FROM FRIENDS GROUP BY activity) AS getActivities
WHERE Number NOT IN (SELECT MIN(Number) FROM (SELECT activity, COUNT(*) AS Number FROM FRIENDS GROUP BY activity )  AS maximum)
AND Number NOT IN (SELECT MAX(Number) FROM (SELECT activity, COUNT(*) AS Number FROM FRIENDS GROUP BY activity) AS minimum)
Gordon Linoff
Reply   •   3 楼
Gordon Linoff    5 年前

这是您的问题:

select activity
from (Select activity, count(*)
      from FRIENDS
      group by activity
     ) as getActivities
where count not in (Select min(count) from (Select activity, count(*) from FRIENDS group by activity ) as maximum,
                    SELECT max(count) from (Select activity, count(*) from FRIENDS group by activity) as minimum
                   );

您有多个错误。例如:

  • count(*) 没有列别名。但它需要一个名称,因为它在子查询中。
  • 子查询没有表别名。
  • 外部的子查询 where 有括号。
  • 这个 , 意味着您打算将子查询作为标量子查询,但它们可以返回多行。

我想你打算:

select f.activity
from friends f
group by f.activity
having count(*) > (select count(*)
                   from friends f2
                   group by f2.activity
                   order by count(*) asc
                   limit 1
                  ) and
       count(*) < (select count(*)
                   from friends f2
                   group by f2.activity
                   order by count(*) desc
                   limit 1
                  );