Как посчитать количество столбцов, имеющих указанное значение c (lke '1') в таблице БД PHPMyadmin? - PullRequest
0 голосов
/ 09 апреля 2020

У меня есть таблица, как показано ниже, с 3 столбцами со значением «1» или «0».

S.no   Product    Qty1    Qty2    Qty3  
1.     Soap         1      0       1
2.     Ball         1      1       0
3.     Deodrant     0      0       0
4.     Butter       1      0       1

Как подсчитать общее число «1» в таблице, как указано выше, в имея 6 номеров? И что делать, если я хочу подсчитать общее количество строк, имеющих только значение «1»?

<?php

if($_SERVER['REQUEST_METHOD']=='POST')
{
 include 'Config.php';

 $conn = mysqli_connect($HostName,$HostUser,$HostPass,$DatabaseName);

 if ($conn->connect_error) 
  die("Connection failed: " . $conn->connect_error);

// $sql = "SELECT SUM(Qty1 + Qty2 + Qty3) from Table"; doesn't seems to work


 $result = $conn->query($sql);

 if ($result=mysqli_query($conn,$sql))
  {
  // Return the number of rows in result set
  $rowcount=mysqli_num_rows($result);

  echo $rowcount;
  // Free result set
  mysqli_free_result($result);
  } 

 else
  echo "0";
}

 else
  echo "failed";

 $conn->close();

?>

Ответы [ 3 ]

1 голос
/ 09 апреля 2020

Вы можете сделать это так:

select 
  sum(Qty1 + Qty2 + Qty3) total_ones,
  sum(Qty1 and Qty2 and Qty3) total_rows_with_ones
from tablename  

См. Демоверсию . Результаты:

| total_ones | total_rows_with_ones |
| ---------- | -------------------- |
| 6          | 0                    |
1 голос
/ 09 апреля 2020

Использование суммы условного агрегирования (случай, когда ...

drop table if exists t;
create table t
(Sno int,   Product varchar(10),   Qty1 int,    Qty2 int,    Qty3 int);
insert into t values  
(1  ,   'Soap'       ,  1   ,   0    ,   1),
(2  ,   'Ball'       ,  1   ,   1    ,   0),
(3  ,   'Deodrant'   ,  0   ,   0    ,   0),
(4  ,   'Butter'     ,  1   ,   0    ,   1);


select 
  sum(Qty1 + Qty2 + Qty3) total_ones,
  sum(case when Qty1 = 1 or Qty2 = 1 or Qty3 = 1 then 1 else 0 end) total_rows_with_ones
from t  ;


+------------+----------------------+
| total_ones | total_rows_with_ones |
+------------+----------------------+
|          6 |                    3 |
+------------+----------------------+
1 row in set (0.001 sec)
1 голос
/ 09 апреля 2020

Надеюсь, это полезно ...

SELECT
  sum(Qty1) as sum_Qty1
  , sum(Qty2) as sum_Qty2
  , sum(Qty3) as sum_Qty3
  , sum(Qty1) + sum(Qty2) + sum(Qty3) as tot_Qty 
FROM
  product
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...