[英]MySQL joins between two tables and calculate 3 numbers in percent
我正在努力处理我的MySQL语句,而且我没有得到任何进一步的帮助,因为我需要一些备份,希望您能花点时间来检查我的问题。
这张照片显示了我想达到的目标。
预期结果,另一个网站 cc的屏幕截图
global $wpdb;
$table_registreringer = $wpdb->prefix . 'registreringer';
$table_redskaber = $wpdb->prefix . 'redskaber';
CREATE TABLE $table_registreringer
(
reg_id INT UNSIGNED NOT NULL AUTO_INCREMENT,
reg_redskabs_id INT UNSIGNED NOT NULL,
PRIMARY KEY (reg_id),
FOREIGN KEY (reg_redskabs_id) REFERENCES $table_redskaber(redskabs_id)
)
CREATE TABLE $table_redskaber
(
redskabs_id INT UNSIGNED AUTO_INCREMENT NOT NULL,
redskabs_navn CHAR (20),
PRIMARY KEY (redskabs_id)
)
<p> wp_registreringer Table dummy </p> <table align="left" border="0" cellspacing="0" cellpadding="0" width="100%"> <tr align="left" valign="top"> <td><strong>reg_id</strong></td> <td><strong>redskabs_id</strong></td> </tr> <tr> <td>1</td> <td>2</td> </tr> <tr> <td>2</td> <td> 3</td> </tr> <tr> <td>3</td> <td>3</td> </tr> <tr> <td>4</td> <td>1</td> </tr> </table> <p>wp_redskaber Table dummy</p> <table align="left" border="0" cellspacing="0" cellpadding="0" width="100%"> <tr align="left" valign="top"> <td><strong>redskabs_id</strong></td> <td><strong>redskabs_navn</strong></td> </tr> <tr> <td>1</td> <td>Flue</td> </tr> <tr> <td>2</td> <td>Orm</td> </tr> <tr> <td>3</td> <td>Spin</td> </tr> </table>
这给我的答案不正确。 但是我希望它可以计算“ redskabs_navn”被选择了多少次的总和。 并在每次注册时将其指定。
SELECT COUNT(*) AS redskaber, COUNT(*) / T.total * 100 AS percent
FROM wp_redskaber as r,
(SELECT COUNT(*) AS total FROM wp_redskaber JOIN wp_registreringer ON
reg_redskabs_id=redskabs_id) AS T
这将达到目的
SELECT redskabs_navn ,
((COUNT(table_registreringer.reg_id)/ (SELECT COUNT(*) FROM table_registreringer))*100 ) AS percent
FROM redskaber
LEFT JOIN table_registreringer
ON redskaber.redskabs_id = table_registreringer.reg_redskabs_id
GROUP BY redskaber.redskabs_id
redskaber
表中向redskabs_navn
添加UNIQUE约束
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.