mysql - 计算频率

标签 mysql frequency calculated-columns

我有一个带有变量版本的表,其中包含模态 V1、V2、V3、V4 和其他变量调用,它可以是 1 或 0。我需要做的是计算 1 到总行数的频率对于版本的每种形式:例如,对于 V1,我有 6 行调用等于 1 和全局中的 13 行,我需要创建变量 freq 来指示 6/13。 我现在要做的是创建 2 个表:第一个表的行数每个调用等于 1

version Version Call=1 
             V1      6
             V2      4
             V3      8
             V4      3

第二个表包含每个版本的总行数

   Version Call total
     V1      13
     V2      14
     V3      15
     V4      23

然后我加入这两个表并计算频率。 我想问是否没有其他方法可以做到这一点?

这是我的代码:

create table Call1 select *, count(*) as call1 from Version where call like '1'group by Version;
create table Calltotal select *, count(*) as calltot from Version group by Version;
update Calltotal change Version Version1 VARCHAR(2);
alter table Call1 add index (Version);
alter table Calltot add index(Version1);
create table final select * from Call1 left join Calltot on Call1.version=Calltot.version1;
alter table final add frequency INT NOT NULL;
update final set frequency=call1/Calltot;

最佳答案

指针...

SELECT thing
     , COUNT(CASE WHEN other_thing = 10 THEN 'foo' END) x 
     , COUNT(*) y  
  FROM my_table 
 GROUP 
    BY thing;

关于mysql - 计算频率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14565589/

相关文章:

mysql - 数据库迁移

c++ - 计算区间内数字频率的类

sql-server - SQL Server中如何将XML数据转换成行列数据

sql-server-2005 - SQL Server 2005 计算列被持久化

php - MYSQL 按邮政编码搜索

mysql - 为什么 select count(*) 不使用数据库中的索引而使用另一个数据库中的索引?

php - 按日期对来自不同 MySQL 表的内容进行排序

r - 根据值出现的频率分配权重

r - 如何识别一组有序列中的第一个零?