具有最高 COUNT 的 MySQL GROUP BY 字段(基于 JOIN)

标签 mysql sql innodb

SELECT COUNT(dev_link.id) c, pattern.direction, pattern.section, (
    SELECT to_stop AS `stop`
    FROM dev_link d
    WHERE d.section = section
    ORDER BY d.sequence DESC
    LIMIT 1
) code
FROM pattern
INNER JOIN dev_link ON dev_link.section = pattern.section
WHERE pattern.service = "YSEO252"
GROUP BY pattern.code
ORDER BY c DESC

enter image description here

上面是一个查询及其结果。目前这选择了太多数据,我需要将其缩小到以下范围:

1 行方向为outbound,另一行方向为inbound。如果只是我可以轻松地 GROUP BY 方向。但是,我需要选择具有最高 c 值的 inboundoutbound 行。所以根据上面的结果,第一行和第三行将被选中。

如何更改我的查询以使其返回这些行?

最佳答案

( SELECT ... WHERE ... AND pattern.direction='inbound' ... LIMIT 1)
UNION ALL
( SELECT ... WHERE ... AND pattern.direction='outbound' ... LIMIT 1 );

否则,每个 SELECT 都像原来的一样。

关于具有最高 COUNT 的 MySQL GROUP BY 字段(基于 JOIN),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29561818/

相关文章:

mysql - 合并两个表以显示所需的输出

PHP - 将数据从 MYSQL 提取到 JSON 时,如何从 UTC 更改日期时间?

android.database.sqlite.SQLiteException : table X has no column named Y: , 编译时:INSERT INTO

mysql - 数据透视表,找到恰好两行之间的公共(public)属性

mysql - InnoDB 性能调整

c# - 顺序计数器的正确隔离级别

php - 内部联接如何使用 Doctrine 和 Symfony2 处理多对多关系

mysql - Hibernate createSQLQuery - 它如何验证 SQL?

sql - 从 JSONB 列中按键选择不同的值

c# - 使用 SQL 在 C# 中使用 Combobox