MySQL连接两个表并以百分比计算3个数字

时间:2017-11-10 08:41:22

标签: mysql

我正在努力处理我的MySQL声明而且我没有得到任何进一步的原因我需要一些备份,我希望你会花时间检查我的问题

这张照片展示了我想要实现的目标。

expected results, screenshot from another site 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 

Query results now

1 个答案:

答案 0 :(得分:0)

这将解决问题

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
  • 最好在redskabs_navn
  • 中向redskaber添加UNIQUE约束