案例然后在Postgresql中
上面是我数据库中的示例数据。 我想计算user1在第一次中有多少项在第二次中也会继续。 在这种情况下,结果应该返回2,因为有两个项目user1在第一次继续,user2在第二次继续。 但是在多次尝试之后,我无法构建SQL语句案例然后在Postgresql中,sql,postgresql,case,Sql,Postgresql,Case,上面是我数据库中的示例数据。 我想计算user1在第一次中有多少项在第二次中也会继续。 在这种情况下,结果应该返回2,因为有两个项目user1在第一次继续,user2在第二次继续。 但是在多次尝试之后,我无法构建SQL语句 有人能帮我解决这个问题吗?我不明白问题标题与问题本身有什么关系。但是,有一种方法可以满足您的需求: item | user | times | data | id --------+-----------+-----------+----
有人能帮我解决这个问题吗?我不明白问题标题与问题本身有什么关系。但是,有一种方法可以满足您的需求:
item | user | times | data | id
--------+-----------+-----------+-----------+-------
item1 | user1 | 1 | data1 | 1
item2 | user1 | 1 | data2 | 2
item3 | user1 | 1 | data3 | 3
item1 | user2 | 2 | data1 | 4
item2 | user2 | 2 | data2 | 5
编辑:我刚刚将“存在”转换为“不存在”以匹配您的问题编辑:-)您说的“有结果”是什么意思?这是否意味着
拥有包含该项的记录?在这种情况下,项目1、2、3有times=1
和user='user1'
的记录,但只有项目1、2有time1
的记录?谢谢你的回答,很抱歉我的帖子,我刚刚编辑了。我对编辑的批准感到惊讶。我知道这篇文章让人困惑,但说真的,把“许多项目用户1第一次做的”改为“许多项目用户1第一次做的”?其余的都是很小的,没什么用。谢谢法比安,我试着用CASE…然后在postgres中得到结果,然后我把帖子命名为CASE…然后,很抱歉。不客气,别担心标题,我只是在读问题时感到惊讶;-)(我刚刚根据新问题编辑了我的答案)再次感谢你,Fabian,你节省了我的时间,我会处理函数和案例…然后忘记了自连接。。。那太愚蠢了。谢谢你的建议,我会尽力完成的。谢谢费边,它就像一个魅力。谢谢你^很高兴它能帮上忙:-)
select count(*)
from t t1
where "user" = 'user1' and times = 1 and exists (
select *
from t t2
where times = 2 and t1.data = t2.data);