MySQL查询会计数,然后显示其他数据

时间:2012-06-07 17:19:36

标签: mysql sql

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

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

示例:

Office1 | 2

Office1 | lastName |电话

Office1 | lastName |电话

Office2 | 3

Office2 | lastName |电话

Office2 | lastName |电话

Office2 | lastName |电话

2 个答案:

答案 0 :(得分:1)

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

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

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

答案 1 :(得分:1)

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

你为什么不试试

SELECT Office, lastName, Phone FROM Active ORDER BY Office

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

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