【问题标题】:Add COUNT in DISTINCT query and two tables related query在 DISTINCT 查询和两个表相关查询中添加 COUNT
【发布时间】:2020-06-12 01:56:02
【问题描述】:

我想在下面的查询中包含 COUNT,我已尝试更改它,但它不起作用。由于查询中缺少 COUNT(我猜),selectedcount 和 average 的 Javascript 不起作用。有人可以帮助我吗?谢谢。

下拉选择

<select id="prg" name="prg"  class="demoInputBox" style="padding: 3px; width: 350px;">
<option value="">Select Programme</option>

    <?php
    $sql = "SELECT DISTINCT student_prg FROM marketing_data, current_sem WHERE marketing_data.intake_year = current_sem.intake_year";
    $do = mysqli_query($conn, $sql);
                      while($row = mysqli_fetch_array($do)){
                        echo '<option value="'.$row['student_prg'].'" data-count="'.$row['count'].'">'.$row['student_prg'].'</option>';
                      }
                  ?>
</select>

Javascript

 <script type="text/javascript">
      var selectedprg = '';
      var selectedcount = '';
      var average = '';

      function myFunction() {
        document.getElementById("demo").innerHTML = "The total number of students in the selected program " +selectedprg + " <br>is " +selectedcount + " , it is predicted that " +average+ " students in +city+ will enroll for the upcoming semester <br> based on the data of 3 semesters back.";
      }

      $(document).ready(function(){
        $("#prg").change( function(){
          selectedprg = $('#prg option:selected').text(); 
          selectedcount = $('#prg option:selected').data('count');
          average = selectedcount / 3 + 5;
        });
      });
    </script>

我尝试过的查询:

"SELECT COUNT (DISTINCT student_prg) FROM marketing_data, current_sem WHERE marketing_data.intake_year = current_sem.intake_year";

屏幕截图:

所选课程计算机科学文凭(工业计算)的学生总数 为+selectedcount,预计+city+的+average名学生将在下学期入学 基于前三个学期的数据。

这个粗体变量无法从现有查询中读取。

ma​​rketing_data 表

current_sem 表

【问题讨论】:

  • 嗨 Rajeshwari - 你在哪里计算学生人数和平均人数。在您的选择查询中,我只能看到您正在从表中提取不同的程序名称。给我们一些示例数据和所需的输出。
  • Hi VarunT - Javascript 中的计数和平均值计算。在我添加 DISTINCT 并加入两个不同的表之前。计算工作正常。我将编辑问题并给出一些关于期望输出的截图
  • 嗨 VarunT - 问题已更新,
  • 你能显示表格中的示例数据吗?理想情况下,学生需要 count(distinct student_ID) 。不看样本数据就不能说太多
  • 完成@VarunT ...

标签: javascript php html mysql


【解决方案1】:

没有 group by 就不能使用 distinct 和 count。

你可以统计结果:

<?php
    $sql = "SELECT DISTINCT student_prg FROM marketing_data, current_sem WHERE marketing_data.intake_year = current_sem.intake_year";

    $do = mysqli_query($conn, $sql);
    $count = mysqli_num_rows($do);
                      while($row = mysqli_fetch_array($do)){
                        echo '<option value="'.$row['student_prg'].'" data-count="'.$count.'">'.$row['student_prg'].'</option>';
                      }
                  ?>

【讨论】:

  • “从marketing_data,current_sem WHERE marketing_data.intake_year = current_sem.intake_year GROUP BY student_prg中选择计数(DISTINCT student_prg)”;没有输出@ShadeBob
  • 检查我的代码...我添加了 mysql_nums_rows 并更新了数据计数
  • 显示值但值不正确。是否有可能只在查询中添加 COUNT ?
  • 你想要一个所有学生的计数器还是每个 student_prg 的学生的计数器?
  • 第二个解决方案 sql 是:“SELECT DISTINCT student_prg, count(student_prg) as count FROM marketing_data, current_sem WHERE marketing_data.intake_year = current_sem.intake_year group by student_prg
猜你喜欢
  • 1970-01-01
  • 2014-10-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多