0

当前的查询效果很好,可以让我计算出每条记录和办公室名称在表中出现的次数和办公室。如何扩展此查询以首先显示 Office 和 Count 就像它现在一样,然后在与 Office 匹配的每条记录的计数下方显示列 lastName、Phone,然后移动到下一个 Office 和 Office(Count) 并显示那些姓氏,电话记录等等?这在 MySQL 中可能吗?

SELECT Office, COUNT(Office) AS c 
FROM Active 
GROUP BY Office 
HAVING COUNT(Office) >= 5  ORDER BY c DESC

例子:

办公室1 | 2

办公室1 | 姓氏 | 电话

办公室1 | 姓氏 | 电话

办公室2 | 3

办公室2 | 姓氏 | 电话

办公室2 | 姓氏 | 电话

办公室2 | 姓氏 | 电话

4

2 回答 2

1

您可以尝试使用 MySQL 的UNION,但列数和列名必须相同。

总的来说,这似乎是一种错误的做法。尝试重新考虑不需要这种输出的逻辑。

我建议只接收姓氏和电话,并缓存结果,然后解析它们。COUNT(*) 在技术上是冗余信息,因为具有相同 Office 的行数已经描述了这一点。

于 2012-06-07T17:24:50.647 回答
1

不,你不能那样做。您最好的选择是UNION,但您必须具有相同数量的列和列类型,这与您的条件不匹配。

你为什么不试试

SELECT Office, lastName, Phone FROM Active ORDER BY Office

并在您的编程语言中,解析行并使用计数器变量来计算相同的Office记录,并构建您自己的表。

编辑:您说它用于直接导出到电子表格。您可以在两个查询中执行此操作:执行您的 count() 查询,然后执行我上面的查询。导出两个结果并根据需要将它们混合到电子表格中。嘿,它完成了工作。

于 2012-06-07T17:31:19.113 回答