繁体   English   中英

如何从表中获取行数并插入MySQL的同一表中?

[英]How do I get the number of rows from a table and insert into the same table in MySQL?

我有一个问题,我想编写一个MySql查询以实现以下结果:

Id | C1 | C2 | Score | Q | CCount | RF |  
1    | A  | B  | 0.25 | 40 |   4   |      
2    | A  | B  | 0.60 | 40 |   4   |      
3    | A  | C  | 0.10 | 20 |   2   |      
4    | A  | B  | 0.90 | 40 |   4   |      
5    | A  | C  | 0.30 | 20 |   2   |      
6    | A  | B  | 0.70 | 40 |   4   |      

CCount列是每个组合的行总数,即AB,AC等。在表中,上述AB的总数为4行,而AC的总数为2行。

  1. 我应该使用2张桌子吗? 主表和计数表,然后使用group by等将计数结果插入回主表。如果是这样,我将如何处理?

  2. 有解决我问题的另一种方法吗?

下面这部分,我可以做:

我这样做是因为我想计算每行的RF(相对频率)。

RF = Score * Q/CCount

我很确定您做错了这一点(因为我看不到整个问题)。

现在刚刚测试过,您可以在查询中执行此操作。

select count(CONCAT(C1,C2)) as count, CONCAT(C1,C2) as name from data group by C1,C2

输出是

count combo
4   AB
2   AC

从这里,您应该能够得到RF,因为我已经得到了总计。
为了简单起见,您现在可以对行进行第二次查询并计算分数。

您可能会执行子查询。 但这确实变得棘手。

约翰。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM