按变量合并两个检索行

时间:2012-10-02 07:29:16

标签: sql sql-server tsql

我有以下问题。我已根据ID值声明了一个变量,但有两个不同的值包含我的数据。这就是我的想法:

    entry_template_id   entry_template_name book_display_name   entry_count value_count null_value_count    null_percentage followed_value_count    followed_null_value_count   followed_null_percentage    
                   9    Loading             Reporting            10            530           78              0.147169811320      520                      78                         0.150000000000 
                   19   Loading             Reporting            1              53            8              0.150943396226       53                       8                         0.150943396226

我想只检索一行ID,如(9,19),相同的template_name,相同的display_name,SUM(entry_count),SUM(value_count),SUM(null_value_count),AVG(null_percentage),SUM(follow_value_count), SUM(follow_nulls_value_count),AVG(follow_null_percentage)。

你能帮我解释一下语法吗?

谢谢!

1 个答案:

答案 0 :(得分:2)

如果您想按名称分组,这应该有效:

SELECT 
STUFF((SELECT ', ' + CAST(entry_template_id AS varchar(50))
       FROM Entries t2 where t1.entry_template_name = t2.entry_template_name 
       FOR XML PATH('')), 1, 2, '') Ids, 
MAX(entry_template_name) entry_template_name, 
MAX(book_display_name) book_display_name, 
SUM(entry_count) entry_count, SUM(value_count) value_count, 
SUM(null_value_count) null_value_count, 
AVG(null_percentage) null_percentage, 
SUM(followed_value_count) followed_value_count, 
SUM(followed_null_value_count) followed_null_value_count, 
AVG(followed_null_percentage) followed_null_percentage
FROM Entries t1
GROUP BY entry_template_name

有关详细说明,请参阅this question