sql-server - 如何从两列中获取双向组合的计数?

标签 sql-server tsql aggregate-functions

我在一家 cargo 公司工作,我们有兴趣统计我们的一辆卡车在两个城市之间双向行驶的次数。

我有一个表格,列出了每个行程段的出发地和目的地,例如:

Origin    Destination
City 1 City 2 City 2 City 1 City 3 City 4 City 2 City 1

我需要一个查询,告诉我城市 1 和城市 2 之间有 3 趟行程,城市 3 和城市 4 之间有 1 趟行程。非常感谢!

最佳答案

我认为以下应该可以解决问题。

SELECT route , COUNT(1) FROM 
(
   SELECT 
   CASE WHEN Origin > Destination THEN Origin+'_'+Destination
   ELSE Destination+'_'+Origin 
   END AS route
   FROM table1
 )a
 GROUP BY route

关于sql-server - 如何从两列中获取双向组合的计数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45578075/

相关文章:

sql-server - 弹性作业代理在逻辑应用程序中执行作业时立即超时

sql-server-2005 - SQL Server 2005 Reporting Services : How to count rows that are not null? 计算总数的任何提示?

sql - SparkSQL : conditional sum using two columns

SQL 查询同时获取 group by 和不同的值

sql - 使用分组 SQL 计算总计

c# - 如何知道哪个表阻止我使用 Entity Framework 6 删除行?

sql select min,从同一行的不同列返回值并进行分组

asp.net - 为什么在 Web 应用程序中由 Reporting Services 2005 调用时,第二个 T-SQL 查询的运行速度比第一个快得多

c# - 在 SQL LIKE 子句中使用 SqlParameter 不起作用

sql - 在 SQL 2005 和 SQL 2012 上使用 ELEMENTS XSINIL 时的不同行为