[英]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行。
我应该使用2张桌子吗? 主表和计数表,然后使用group by等将计数结果插入回主表。如果是这样,我将如何处理?
有解决我问题的另一种方法吗?
下面这部分,我可以做:
我这样做是因为我想计算每行的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.