![](/img/trans.png)
[英]SQL Query to compare two values which are in the same column but returned by two different set of queries
[英]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;
試試這個
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.