Select 个带有 where in 子句的唯一行(SQL 服务器)
Select unique rows with where in clause (SQL Server)
我正在尝试 return 一个 json
列中的每个唯一值。
但是,当我尝试从子查询 select 时,整个结果集是 returned。
例子Table
| json | column |
|--------|--------|
| {obj1} | 1 |
| {obj2} | 1 |
| {obj3} | 2 |
示例查询
select distinct
[json]
from someTable
where [column] in (
select distinct
[column]
from someTable
)
实际输出
| json |
|--------|
| {obj1} |
| {obj2} |
| {obj3} |
预期输出
| json |
|--------|
| {obj1} |
| {obj3} |
如何 select 每个唯一列值仅 1 json
?
如果与列相关的输出无关紧要 obj1 Or obj2
您必须像这样使用分组依据:
SELECT
Min(JSon) AS Json ,Column
FROM
someTable
Group By column
如果你想要每个 column
的第一个 [json]
然后使用 row_number()
:
select t.[json] from (
select
[json],
row_number() over (partition by column order by id) rn
from someTable
) t
where t.rn = 1
我正在尝试 return 一个 json
列中的每个唯一值。
但是,当我尝试从子查询 select 时,整个结果集是 returned。
例子Table
| json | column |
|--------|--------|
| {obj1} | 1 |
| {obj2} | 1 |
| {obj3} | 2 |
示例查询
select distinct
[json]
from someTable
where [column] in (
select distinct
[column]
from someTable
)
实际输出
| json |
|--------|
| {obj1} |
| {obj2} |
| {obj3} |
预期输出
| json |
|--------|
| {obj1} |
| {obj3} |
如何 select 每个唯一列值仅 1 json
?
如果与列相关的输出无关紧要 obj1 Or obj2
您必须像这样使用分组依据:
SELECT
Min(JSon) AS Json ,Column
FROM
someTable
Group By column
如果你想要每个 column
的第一个 [json]
然后使用 row_number()
:
select t.[json] from (
select
[json],
row_number() over (partition by column order by id) rn
from someTable
) t
where t.rn = 1