如何 select 来自计数 table 的特定行 SQL
How to select a specific row from count table in SQL
是否可以 select 组计数中的特定行?
这是我的sql声明:
SELECT
COUNT(*)
FROM
khashrm a
INNER JOIN price_name b WHERE
(a.type3 = b.name)
GROUP BY
a.type3
ORDER BY
`COUNT(*)`
DESC
结果将是:
+---------+
| COUNT() |
+---------+
| 1 |
+---------+
| 5 |
+---------+
| 10 |
+---------+
我只想select那一行10,顺便说一下,这一行是可变的,它不是固定值。
如果您想要计数为 10
的行,请使用 having
:
SELECT COUNT(*)
FROM khashrm a
INNER JOIN price_name b ON a.type3 = b.name
GROUP BY a.type3
HAVING COUNT(*) = 10
ORDER BY COUNT(*) DESC
如果您想要结果集中的第三行,则为 limit
和 offset
:
SELECT COUNT(*)
FROM khashrm a
INNER JOIN price_name b ON a.type3 = b.name
GROUP BY a.type3
ORDER BY COUNT(*) DESC
LIMIT 1 OFFSET 2
备注:
使用标准联接;连接条件转到 on
子句而不是 where
子句
连接条件两边不需要括号
是否可以 select 组计数中的特定行?
这是我的sql声明:
SELECT
COUNT(*)
FROM
khashrm a
INNER JOIN price_name b WHERE
(a.type3 = b.name)
GROUP BY
a.type3
ORDER BY
`COUNT(*)`
DESC
结果将是:
+---------+
| COUNT() |
+---------+
| 1 |
+---------+
| 5 |
+---------+
| 10 |
+---------+
我只想select那一行10,顺便说一下,这一行是可变的,它不是固定值。
如果您想要计数为 10
的行,请使用 having
:
SELECT COUNT(*)
FROM khashrm a
INNER JOIN price_name b ON a.type3 = b.name
GROUP BY a.type3
HAVING COUNT(*) = 10
ORDER BY COUNT(*) DESC
如果您想要结果集中的第三行,则为 limit
和 offset
:
SELECT COUNT(*)
FROM khashrm a
INNER JOIN price_name b ON a.type3 = b.name
GROUP BY a.type3
ORDER BY COUNT(*) DESC
LIMIT 1 OFFSET 2
备注:
使用标准联接;连接条件转到
on
子句而不是where
子句连接条件两边不需要括号