好的我需要从同一张桌子上获取计数ID。我不知道如何解释这个,所以我只会告诉你:
SELECT COUNT(ID)
FROM Response
WHERE q_ID = 655
AND r = 1576
AND q_ID = 642
AND r = 1496
我认为我需要一个子查询,如:
SELECT COUNT(ID)
FROM
(
SELECT ID
FROM Response
WHERE q_ID = 655
AND r = 1576
)
WHERE q_ID = 642
AND r = 1496
也许这样的事情会起作用我只是不确定。 好的,所以这就是我的想法,我需要一个ID过滤两次的计数首先给我所有= q_ID = 655 AND r = 1576然后从该组计算所有的ID = q_ID = 642 AND r = 1496 < / p>
我希望有所帮助。
答案 0 :(得分:2)
您在寻找Joes查询还是这个?
如果您要查找q_ID
为655或642且r
为1576或1496的任何行,则会为您提供。
SELECT COUNT(ID)
FROM Response
WHERE q_ID IN (655,642)
AND r IN (1576, 1496)
如果您要查找的报表返回的q_ID
为655且r
为1576或q_ID
为642且r
为1496的行,那么您想要这个。
SELECT COUNT(id)
FROM Response
WHERE (q_ID = 655 AND r = 1576)
OR (q_ID = 642 AND r = 1496)
如果你想让第二个人接受@ Joe的答案,那么他首先想出了这个答案。
答案 1 :(得分:0)
这是你的意思吗?
SELECT COUNT(distinct id)
FROM Response
WHERE (q_ID = 655
AND r = 1576)
OR (q_ID = 642
AND r = 1496)
答案 2 :(得分:0)
假设你没有重复的Id,那只是计算行数,q_ID和r值形成对,这是一个简单的例子
SELECT COUNT(*) FROM Response WHERE (q_ID = 642 AND r = 1496)
OR q_ID = 655 AND r = 1576)
答案 3 :(得分:0)
通过在分组中包含Q_ID和R您可以识别与该特定组关联的计数。
SELECT COUNT(*), Q_ID, R
FROM TABLE
WHERE ((q_ID = 655 AND r = 1576) OR (q_ID = 642 AND r = 1496))
GROUP BY Q_ID, R
答案 4 :(得分:0)
以下是我解决这个问题的方法,有点凌乱但是没问题,我为每个参与调查的人添加了一个ID,制作了一个数据集并将每个人添加到具有特定性状年龄等的数据集中。 所以我有一组人员数据然后我只是在一个计数中相互交叉表,我有我想要的数量。如果其他人有更好的解决方案,我全都耳朵!
答案 5 :(得分:-3)
使用以下方法修改您的查询:
根据您的要求提供两种选择:
如果你的要求是“找到任何q_ID为655或642且r也是1576或1496的行”,那么试试这个:
SELECT COUNT(ID) FROM Response WHERE q_ID IN (655,642) AND R IN (1576, 1496)
或
如果您的要求是“q_ID为655且r为1576或q_ID为642且r OF 1496的行”,请尝试以下操作:
SELECT COUNT(ID) FROM Response WHERE (q_ID = 655 AND r = 1576) OR (q_ID = 642 AND r = 1496)