案例然后在Postgresql中

案例然后在Postgresql中,sql,postgresql,case,Sql,Postgresql,Case,上面是我数据库中的示例数据。 我想计算user1在第一次中有多少项在第二次中也会继续。 在这种情况下,结果应该返回2,因为有两个项目user1在第一次继续,user2在第二次继续。 但是在多次尝试之后,我无法构建SQL语句 有人能帮我解决这个问题吗?我不明白问题标题与问题本身有什么关系。但是,有一种方法可以满足您的需求: item | user | times | data | id --------+-----------+-----------+----

上面是我数据库中的示例数据。 我想计算user1在第一次中有多少项在第二次中也会继续。 在这种情况下,结果应该返回2,因为有两个项目user1在第一次继续,user2在第二次继续。 但是在多次尝试之后,我无法构建SQL语句


有人能帮我解决这个问题吗?

我不明白问题标题与问题本身有什么关系。但是,有一种方法可以满足您的需求:

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);