我将这些数据放到SQL Server上的testDB中:
我想要写查询从表中获取此数据:
1 --------> 3
2 --------> 2
我该怎么做?
感谢。
如何从上表中获取这些数据?
1----->A,B,C
2----->D,E
答案 0 :(得分:0)
一个简单的GROUP BY
可以解决问题。
SELECT
columnX,
COUNT(*)
FROM <YourTable>
GROUP BY columnX
对于另一个问题:
SELECT
columnX,
STUFF((
SELECT ',' + columnY
FROM YourTable
WHERE columnX = t.columnX
FOR XML PATH(''), TYPE).value('.', 'VARCHAR(MAX)')
,1 ,1 , '')
FROM YourTable t
GROUP BY t.columnX
答案 1 :(得分:0)
或者在sql server中使用Window函数:
案例1:
select count(column x) over(partition by column x) as cnt,
column x,
column y from table
您可以使用此FOR XML PATH&amp;案例2的STUFF技巧:
SELECT
b.columnX,
COUNT(*) as cnt,STUFF( (SELECT ',' + a.column y
FROM table a
where a.column x = b.coulmn x
FOR XML PATH('')),
1, 1, '')
FROM table b
GROUP BY b.columnX