我可以使用什么SQL查询来选择只有0个产品的用户?

时间:2014-10-20 14:51:47

标签: mysql sql database data-analysis

我正在插入一个包含大量数据的CSV文件,其格式与下面的屏幕截图类似。

我目前正在尝试创建一个SQL查询,它将选择所有用户:

  • 0在'数据'栏(E栏)
  • 0在' Min'栏(F栏)
  • 1' Amt'栏(G栏)
  • 对于该用户的每一行,上述所有3个都必须为真。

因此,如果查询是针对' Steven Jones'将被选中& ' Alice Baker'因为' Steven Jones'是唯一一个所有行的用户都有0,0,1我正在寻找的用户。

SQL数据库由一个表格组成,下面是字段名称。

有人能指出我正确的方向来创建查询吗?谢谢。

Screenshot of CSV

2 个答案:

答案 0 :(得分:2)

使用havinggroup by

select userId
from table t
group by userId
having min(data) = 0 and max(data) = 0 and
       min(`min`) = 0 and max(`min`) = 0 and
       min(amt) = 1 and max(amt) = 1;

答案 1 :(得分:0)

如果我理解正确,我们会尝试找到一组人,他们没有存在数据非零的行,min不为零,而amt不为1。

所以...

SELECT DISTINCT(userid)
FROM mytable t1
WHERE NOT EXISTS(
    SELECT 1 
    FROM mytable t2
    WHERE t1.userid = t2.userid
     AND  t2.data != 0
     AND  t2.min != 0
     AND  t2.AMT != 1
)