sql - 如何在 microsoft sql 查询中找到 "cross group"?

标签 sql sql-server group-by count

我有一张 table 。有 2 列。 “来源”和“目的地”

<表类="s-表"> <头> 来源 目的地 <正文> ABC 防御 防御 ABC

现在通过SELECT Source, Destinaton FROM dbo.Pakete GROUP BY Source, Destinaton;
查询时有2个结果 但我希望他们算作一个。就像存在 2 次的 ABC 和 DEF 的交叉组合!

例子:

<表类="s-表"> <头> 来源 目的地 计数 <正文> ABC 防御 2

Microsoft SQL查询语言有查询解决方案吗?

谢谢!
塞维林!

最佳答案

您可以使用 case 表达式按最小值和最大值聚合:

SELECT (CASE WHEN Source < Destination THEN SOURCE ELSE Destination END),
       (CASE WHEN Source > Destination THEN SOURCE ELSE Destination END),
       COUNT(*)       
FROM dbo.Pakete p
GROUP BY (CASE WHEN Source < Destination THEN SOURCE ELSE Destination END),
         (CASE WHEN Source > Destination THEN SOURCE ELSE Destination END)

关于sql - 如何在 microsoft sql 查询中找到 "cross group"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68018841/

相关文章:

Python:汇总和聚合 DataFrame 中的组和子组

java - Sybase 中的 JDBC 事务控制

sql-server - 添加数据库关系以减少连接并提高性能

sql-server - [unixODBC][FreeTDS][SQL Server]无法连接到数据源

arrays - Sequelize - 存储过程的多个结果集合并到一个数组中

MySQL 如何使用通配符进行分组

mysql - MySQL 中的连接、分组和求和

mysql - SQL 按一次操作的结果排序

mysql - MySQL 上每周的 ORDER BY

php - 网站SQL和文件上传管理CMS