簡體   English   中英

SQL查詢兩個不同查詢中的行值

[英]SQL query for row values that are in two different queries

我敢肯定這已經被回答過了,但是我找不到正確的詞來搜索以找到我的答案。

我有一張桌子,例如:

USERNAME     ACTIONNUM      VALUE1     VALUE2
--------     ----------     ------     ------
Person1      Action1             0          1
Person1      Action1             1          1
Person1      Action1             1          1
Person1      Action2             0          1
Person1      Action2             1          1
Person2      Action3             0          1
Person2      Action3             1          1
Person3      Action4             1          1

對於本示例,我想對VALUE1和VALUE2(即0,1)執行一次搜索,僅給我提供USERNAME。 因此,第一個搜索將給出:Person1,Person2。

然后,第二次搜索應該給我一個不同的操作號,並為值1,1計數該操作存在的次數,但是只給我在第一次搜索中找到USERNAME的行。

因此,對於此示例,我希望查詢返回:

USERNAME     ACTIONNUM      COUNT
--------     ----------     -----
Person1      Action1            2
Person1      Action2            1
Person2      Action3            1

因此,跳過Person3的原因是,第一次搜索未返回Person3

您可以在子查詢中使用IN:

select * from table where value1 = 1 and value2 = 1 and username in  (
select username from table where value1 = 0 and value2 = 1
)

更改此答案,我誤解了部分問題。

SELECT username, actionnum, (select count(actionnum)
                             from test1 b
                             where b.value1=1
                             and b.value2=1
                             and b.username = a.username
                             and b.actionnum = a.actionnum)
FROM test1 a
WHERE  value1 = 0 AND value2 = 1
order by 1, 2;

sqlfiddle

試試這個

Select 
  UserName
, ActionNum
, Count(*) As Cnt
From MyTable
    Where Value1 = 1
      And Value2 = 1 
      And UserName In
        ( 
            Select Distinct UserName 
            From MyTable
            Where Value1 = 0
              And Value2 = 1 
        )
Group By
  UserName
, ActionNum

您可以嘗試類似..

SELECT 
    table.USERNAME,
    table.ACTIONNUM,
    COUNT(table.ACTIONNUM) as ACTIONNUMCOUNT
FROM 
    table
WHERE
    table.VALUE1 = 1
    AND
    table.VALUE2 = 1
    AND
    USERNAME IN 
                (
                    SELECT DISTINCT USERNAME FROM table where value1 = 0 and value2 = 1
                )
GROUP BY
    table.ACTIONNUM

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM