Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/349.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
Python 详细SQL查询,计数(*)限制器不工作_Python_Mysql_Mysql Python - Fatal编程技术网

Python 详细SQL查询,计数(*)限制器不工作

Python 详细SQL查询,计数(*)限制器不工作,python,mysql,mysql-python,Python,Mysql,Mysql Python,恐怕我对SQL不是很在行,所以我对自己在这方面遇到的问题并不感到惊讶,但如果您能帮助我让它工作起来,甚至不需要一个查询,我将不胜感激。尝试使用Python中的MySQLdb分析一些Twitter数据,我正在运行: for u_id in list: " select e.user_id from table_entities e inner join table_tweets t on e.id = t.id where e.type='mention' and t.user_id=%s gro

恐怕我对SQL不是很在行,所以我对自己在这方面遇到的问题并不感到惊讶,但如果您能帮助我让它工作起来,甚至不需要一个查询,我将不胜感激。尝试使用Python中的MySQLdb分析一些Twitter数据,我正在运行:

for u_id in list:
"
select e.user_id
from table_entities e
inner join table_tweets t on e.id = t.id
where e.type='mention' and t.user_id=%s
group by e.type having count('hashtag') < 3
"
%
(u_id)
python语法稍微做作,不显示不重要的内容

现在,在GROUPBY语句之前的一切都很好。我能够提取给定tweet中提到的用户id,id是table_tweet的主键,而table_实体中的每一个提及、hashtag或URL都有另一行与我循环的当前位置相匹配

然而,我认为我的格式设置得不太正确,GROUPBY语句没有任何作用。我的意思是排除属于tweets id的所有用户id,这些用户id在type=hashtag的表实体中有3个或更多条目。我可以说它不会像现在这样工作,因为它实际上并没有引用id列,但我尝试过的任何方法都会抛出语法错误,例如,试图将其作为join子句的一部分


敬请指教

这并不是你想要的

select e.user_id
from table_entities e
inner join table_tweets t on e.id = t.id
where e.type='mention' and t.user_id=%s
group by e.type having count('hashtag') < 3
“子选择”将在具有e.type哈希标记的表实体中查找少于3条记录的所有用户ID以及与%s匹配的用户


再次选择“提及”和用户id的主筛选。这允许您选择一个e.type,并根据另一个e.type的计数进行过滤。

我认为您错误地分析了我的post my fault的一部分,因为它有点混乱-用户id列仅在type='TIVE'时填充。我试图通过id列进行限制。也就是说,多亏了你的帮助,我才能让它工作

select e.user_id
from table_entities e
inner join table_tweets t on e.id = t.id
where e.type='mention' and
e.id in
(select e.id
from table_entities e
where e.type='hashtag' group by e.id having count(*) < 3)

我决定将其移到列表中foru_id循环的上方,因为查询现在需要一段时间才能运行,但我可以在这里处理列表输出。谢谢

这可能是一个简单的疏忽,但似乎你没有计算任何东西,或者更严格地说,你在计算“标签”。我的意思是,也许您应该计算列hashtag而不是字符串hashtag。另外,请确保清理代码以实际使用参数,而不是字符串替换nevermind-我知道您正在尝试做什么。不幸的是,您所要求的和示例代码显示的是对立面。您的查询将提取少于3个hashtag的所有用户ID。此外,一个用户可以有多条tweet,有些带有>3个hashtag,有些带有更少的hashtag。您将获得此用户的用户id,因为这些用户具有>3个hashtag。你可能想得到推特id,然后找出用户是谁。@ConradFrix如果你指的是我的第一条评论,那么那是我还在努力解决这个词的问题的时候。根据我的经验,如果COUNT'hashtags'小于3,则计算结果为1<3,这是正确的。因此,它实际上什么也没做。。。除非MySQL对GROUP BY进行巫术治疗。。。我想你的意思是不在或有Count*>=3我花了大约10次时间通读它来找出需要什么。
select e.user_id
from table_entities e
inner join table_tweets t on e.id = t.id
where e.type='mention' and
e.id in
(select e.id
from table_entities e
where e.type='hashtag' group by e.id having count(*) < 3)