如何基于选择列SQL Server计算DISTINCT

马利克斯

我在SQL Server中有一个表,其中包含7列:

----------------------------------------------------------------------------------------
id | Source_Node | Source_Node_Type | Target_Node | Target_Node_Type | Year | Edge_Type
----------------------------------------------------------------------------------------

1    10965          2                  23036        3                  2005   2
2    10965          2                  23036        3                  2005   2
3    2947           2                  23036        3                  2005   2
4    37529          4                  23036        3                  2005   4
...  
...

虽然我都数不过来的只有两列的基础DISTINCT行即Source_NodeTarget_Node如行与id1和2有相同的价值观Source_NodeTarget_Node,所以这应该是得到计数一次。我已经尝试查询为:

SELECT COUNT(*) FROM GraphEdges
WHERE Source_Node IN (...Node_List...) 
AND Target_Node IN (...Node_List)  

尝试查询时,它的计数为58。

SELECT DISTINCT Source_Node, Target_Node FROM GraphEdges
WHERE Source_Node IN (...Node_List...) 
AND Target_Node IN (...Node_List...)  

它提供了53行,这是我需要的数字,但是却提供了整行,而我需要COUNT图,即53。
如何修改查询?
谢谢!

萨加斯

您可以将其与另一个选择包装在一起,如下所示:

SELECT COUNT(*) FROM (
    SELECT DISTINCT Source_Node, Target_Node FROM GraphEdges
    WHERE Source_Node IN (...Node_List...) 
           AND Target_Node IN (...Node_List...))

或没有子查询的解决方案:

SELECT count(distinct concat(Source_Node,Target_Node))
FROM GraphEdges
WHERE Source_Node IN (...Node_List...) 
      AND Target_Node IN (...Node_List...))

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类常见问题

如何使用选择查询在SQL Server中并排添加列

来自分类Dev

在Apache Pig中,基于单个列选择DISTINCT行

来自分类Dev

如何使用聚合函数SQL Server选择列

来自分类Dev

如何合并DISTINCT和计算合计值

来自分类Dev

如何在SQL Server中选择行到列

来自分类Dev

在SQL Server中计数DISTINCT

来自分类Dev

SQL Server中的计算列

来自分类Dev

SQL Server 2008中基于计算列的新行

来自分类Dev

如何在SQL Server中基于某些数量选择头寸

来自分类Dev

如何基于给定的日期列创建自定义季度sql sql sql server

来自分类Dev

如何基于列值展开表SQL Server

来自分类Dev

SQL-如何基于其他列的值添加计算列

来自分类Dev

如何使用选择查询在SQL Server中并排添加列

来自分类Dev

SQL Server基于逻辑的选择查询

来自分类Dev

如何基于使用SQL Server选择的非重复(列)获取非重复行

来自分类Dev

如何从两个表SQL Server中选择列

来自分类Dev

如何在SQL select语句中基于另一列添加计算列

来自分类Dev

在Apache Pig中,基于单个列选择DISTINCT行

来自分类Dev

基于选择语句SQL Server 2005的更新

来自分类Dev

SQL Server-选择要基于另一个列值进行更新的列

来自分类Dev

如何在SQL Server中选择行到列

来自分类Dev

SQL Server:COUNT(DISTINCT(CASE))

来自分类Dev

在SQL Server中计数DISTINCT

来自分类Dev

如何基于SQL Server中的多个列进行计数?

来自分类Dev

SQL Server 2008中基于计算列的新行

来自分类Dev

基于OR子句的SQL计算列

来自分类Dev

如何在Sql Server中的列中对选择进行分组

来自分类Dev

如何计算 SQL Server 存储过程中选择的数量

来自分类Dev

使用 SQL Server:如何使用基于总和的选择条件

Related 相关文章

热门标签

归档