现在想要知道表中houqingbu=501 中 字段houqingbu和字段fw 中a有几个,b有几个,c有几个。
然后输出a=1 b=3 c=2
$k=表中houqingbu=501的数量
$a=1 * 10
$b=3 * 5
$c=2 * 1
然后运算总分 = ($a+$b+$c)/($k * 20)
输出结果
abc的数据包含的个数,应该是a=1个 b=3个 c=2个
现在调出的是包含a的条数b的条数。这样数字就不对了。
最后的结果应该是a=1个 b=3个 c=2个 K=3条
运算总分的结果应该是0.45
下面的sql语句获取a,b,c各个字段的数目:
SELECT fw, COUNT(houqingbu) as num
FROM table_name
WHERE houqingbu=501
GROUP BY fw
下面的语句获取houqingbu=501
的数目:
SELECT houqingbu, COUNT(houqingbu) as num
FROM table_name
WHERE houqingbu=501
试试下边的代码:
$dbCon = mysqli_connect("localhost","root","123456","test");
$sql ="SELECT houqingbu,fw,count(*) AS num FROM test0222 WHERE houqingbu = 501 GROUP BY fw ORDER BY fw ASC LIMIT 3";
$result = mysqli_query($dbCon,$sql);
$k = '';
while($row=mysqli_fetch_array($result)){
if($k == ''){
$k = $row['houqingbu'];
}
switch($row['fw']){
case 'a':
$a = $row['num'] * 10;
break;
case 'b':
$b = $row['num'] * 5;
break;
case 'c':
$c = $row['num'] * 1;
break;
default:
$d = '';
break;
}
}
$total = ($a+$b+$c)/($k*20);
echo '运算总分:'.$total;
mysqli_close($dbCon);
SELECT * from (SELECT *, CONCAT(name,code) as nameAndCode from tb_table) t WHERE t.nameAndCode in
(
SELECT nameAndCode from (SELECT CONCAT(name,code) as nameAndCode from tb_table) tt GROUP BY nameAndCode HAVING count(nameAndCode) > 1
)
DELETE from tb_table WHERE id not in
(
SELECT maxid from (SELECT MAX(id) as maxid, CONCAT(name,code) as nameAndCode from tb_table GROUP BY nameAndCode) t
)
先把重复的查询出,在用count函数和sum函数计算即可