使用T-SQL此表:计数前5个元素分布在行和列
+-----+------+------+------+-----+
| No. | Col1 | Col2 | Col3 | Age |
+-----+------+------+------+-----+
| 1 | e | a | o | 5 |
| 2 | f | b | a | 34 |
| 3 | a | NULL | b | 22 |
| 4 | b | c | a | 55 |
| 5 | b | a | b | 19 |
+-----+------+------+------+-----+
我需要统计的前3名(由TOTALCOUNT DESC有序)对所有的行和列,为3岁组:0-17,18-49,50-100。另外,如何从结果中忽略NULLS?
如果可能的话,我怎么也可以将所有3个年龄组的结果合并为一个输出表以获得9个结果(TOP 3 x 3年龄组)?
输出只有1年龄:18-49应该是这样的:
+------+------------+
| Name | TotalCount |
+------+------------+
| b | 4 |
| a | 3 |
| f | 1 |
+------+------------+
有趣的分类各组内检查以下multiple-CTE SQL SELECT语句用于 Row_Number() with Partition By条款顺序记录'CROSS APPLY'和'VALUES'的用法 – ughai
@ughai从Dwain得到Camp的[文章](http://www.sqlservercentral.com/articles/CROSS+APPLY+VALUES+UNPIVOT/91234/)。 –