Mysql 如何从数据库中获取组合数?
如何从数据库中获取组合数 我必须创建数据库表,并希望获得组合的计数。是否有人知道如何将其放入数据库查询中,因此我没有每次访问的db请求 旅行 乘客 预期结果 可供替代的 有人有主意吗 非常感谢 试试这个:Mysql 如何从数据库中获取组合数?,mysql,sql,Mysql,Sql,如何从数据库中获取组合数 我必须创建数据库表,并希望获得组合的计数。是否有人知道如何将其放入数据库查询中,因此我没有每次访问的db请求 旅行 乘客 预期结果 可供替代的 有人有主意吗 非常感谢 试试这个: SELECT Driver, Passengers, COUNT(*) AS `Count` FROM ( SELECT t.ID, t.Driver, GROUP_CONCAT(p.PassengerID ORDER BY
SELECT Driver, Passengers, COUNT(*) AS `Count`
FROM (
SELECT t.ID, t.Driver,
GROUP_CONCAT(p.PassengerID
ORDER BY p.PassengerID
SEPARATOR '-') AS Passengers
FROM Trips AS t
INNER JOIN Passengers AS p ON t.ID = p.TripID
GROUP BY t.ID, t.Driver) AS t
GROUP BY Driver, Passengers
上述查询将生成替代结果集。另一个结果集只能使用动态sql实现
如果还有另一次旅行,只有B和C作为乘客,A作为司机,那么预期的结果是什么?示例添加到POST中,因此您要求查询返回动态列数,具体取决于当前表数据?也可能是一种结构,其中列位于行的secons列中。
| ID | PassengerID | TripID |
|----|-------------|--------|
| 1 | B | 1 |
| 2 | C | 1 |
| 3 | D | 1 |
| 4 | B | 2 |
| 5 | D | 2 |
| 6 | A | 3 |
| 7 | B | 4 |
| 8 | D | 4 |
| 9 | B | 5 |
| 10 | C | 5 |
| Driver | B-C-D | B-D | A | B-C |
|--------|-------|-----|---|-----|
| A | 1 | 2 | - | 1 |
| B | - | - | 1 | - |
| Driver | Passengers | Count |
|--------|------------|-------|
| A | B-C-D | 1 |
| A | B-D | 2 |
| A | B-C | 1 |
| B | A | 1 |
SELECT Driver, Passengers, COUNT(*) AS `Count`
FROM (
SELECT t.ID, t.Driver,
GROUP_CONCAT(p.PassengerID
ORDER BY p.PassengerID
SEPARATOR '-') AS Passengers
FROM Trips AS t
INNER JOIN Passengers AS p ON t.ID = p.TripID
GROUP BY t.ID, t.Driver) AS t
GROUP BY Driver, Passengers