(Max-Min)/100,分成100份,统计每份有多少条记录,比如最大值1000,最小值100,那每份为1000/100=10,从100-110有多少条记录,从110-120有多少条记录 sql如何写
时间: 2024-03-09 10:50:15 浏览: 35
可以使用以下SQL语句来实现统计每份中有多少条记录:
```
SELECT
FLOOR((column_name - min_value) / ((max_value - min_value) / 100)) AS range_num,
COUNT(*) AS count
FROM
table_name
WHERE
column_name >= min_value AND column_name <= max_value
GROUP BY
range_num
ORDER BY
range_num;
```
其中,`column_name`是需要统计的列名,`min_value`和`max_value`是需要统计的区间的最小值和最大值。这个查询将会把指定区间内的数据按照从最小值到最大值划分成100份,然后统计每份中有多少条记录,并按照分组编号从小到大排序返回结果。
相关问题
指标的直方图是用来看指标的数据分布的,比如看看“销量”这个指标的直方图,就是统计“销量”的分布情况,也就是一单能卖几台电视,是否符合正态分布,销量是一个连续值,所以后端这样处理:(Max-Min)/100,分成100份,统计每份有多少条记录,比如最大值1000,最小值100,那每份为900/100=9,从100-109有多少条记录,从109-118有多少条记录,X轴就是这100份的区间 sql怎么写
可以使用以下SQL语句来实现指标直方图的统计:
```
SELECT
CONCAT(FLOOR((column_name - min_value) / ((max_value - min_value) / 100)), ' - ',
FLOOR((column_name - min_value) / ((max_value - min_value) / 100)) + 1) AS range,
COUNT(*) AS count
FROM
table_name
WHERE
column_name >= min_value AND column_name <= max_value
GROUP BY
FLOOR((column_name - min_value) / ((max_value - min_value) / 100))
ORDER BY
FLOOR((column_name - min_value) / ((max_value - min_value) / 100));
```
其中,`column_name`是需要统计的列名,`min_value`和`max_value`是需要统计的区间的最小值和最大值。这个查询将会把指定区间内的数据按照从最小值到最大值划分成100份,然后统计每份中有多少条记录,并按照分组编号从小到大排序返回结果。结果中`range`列表示每份的区间范围,例如第一行的区间为`0 - 1`表示从最小值到最大值中的第1个区间,`count`列表示这个区间内有多少条记录,用来表示数据分布情况。
阅读全文