【发布时间】:2013-02-09 22:07:42
【问题描述】:
我在下面有一个简单的表 BIRDCOUNT,显示在任何一天计算了多少只鸟:
+----------+
| NUMBIRDS |
+----------+
| 123 |
| 573 |
| 3 |
| 234 |
+----------+
我想创建一个频率分布图,显示对鸟类数量进行计数的次数。所以我需要 MySQL 来创建类似的东西:
+------------+-------------+
| BIRD_COUNT | TIMES_SEEN |
+------------+-------------+
| 0-99 | 17 |
| 100-299 | 23 |
| 200-399 | 12 |
| 300-499 | 122 |
| 400-599 | 3 |
+------------+-------------+
如果鸟类数量范围是固定的,这将很容易。但是,我永远不知道看到多少只鸟的最小值/最大值。所以我需要一个选择语句:
- 创建与上述类似的输出,始终创建 10 个计数范围。
- (更高级)创建与上述类似的输出,始终创建 N 个计数范围。
我不知道 #2 是否可以在单个选择中解决,但任何人都可以解决 #1 吗?
【问题讨论】:
-
到目前为止,我在一次选择中找到了最小值和最大值,然后划分为 N 个范围,在 PHP 中构建了一个 SELECT 语句以编程方式创建范围,然后运行第二个选择。这并不能真正帮助任何人想出答案,但既然你问了。
-
你能给出相同的样本数据和你想要的结果吗?
-
如果bird_count = 200,它将在哪一行?
-
@Michelle 你的意思是在第 17 天统计了 0 到 99 只鸡,然后在另外 23 天统计了 100 到 199 只鸡,等等?
-
是的 - 我已更新问题以反映非重叠范围
标签: mysql count distribution frequency