1

运行此查询,

select * from table;

返回以下内容

|branch | number |
-------------------
|  1    |  123   |
|  1    |  001   |
|  2    |  123   |
|  3    |  123   |
|  4    |  123   |
|  1    |  123   |
|  1    |  789   |
|  2    |  123   |
|  3    |  123   |
|  4    |  009   |

我想找到仅分支 1 独有的值

|  1    |  001   |
|  1    |  789   |

这可以在没有将数据存储在单独的表中的情况下完成吗?我已经尝试了一些“选择不同”的查询,但似乎没有得到我期望的结果。

4

5 回答 5

2
SELECT branch, number
FROM table
WHERE branch = 1
GROUP BY branch, number
于 2013-03-27T19:01:41.767 回答
2

如果您不需要任何聚合,则可以使用distinct代替group by

select  distinct branch
,       number
from    YourTable
where   branch = 1
于 2013-03-27T19:02:33.433 回答
1

我想我想说的是我想找到仅分支 1 独有的所有数字。如果在任何其他分支中找到它们,我不想看到它们。

我想这就是你想要的。

SELECT distinct number
FROM MyTable
WHERE branch=1 and number not in 
( SELECT distinct number
FROM MyTable
WHERE branch != 1 )
于 2013-03-27T19:33:39.560 回答
0

试试这个:

SELECT branch, number
FROM table
GROUP BY branch, number

这是一个SQLFiddle供您查看

如果要将其限制为仅分支 1,则只需添加 where 子句。

SELECT branch, number
FROM table
WHERE branch = 1
GROUP BY branch, number
于 2013-03-27T19:01:31.013 回答
0

要选择列中唯一numberbranch值为 1 的所有值,您可以使用以下代码:

SELECT branch, number
FROM table1
WHERE number IN (
 SELECT number
 FROM table1
 GROUP BY number 
 HAVING (COUNT(number ) = 1)
)
AND branch = 1

有关演示,请参阅http://sqlfiddle.com/#!2/97145/62

于 2013-03-27T19:44:31.103 回答