例如,我有一个列:bank_id和status。
使用查询:
SELECT Bank_ID, status FROM int_client_bank WHERE status = 30 or status = 50 or status = 35 or status = 37;
我得到的结果为:
例如。
**id_bank status**
1, 30
1, 30
1, 50
1, 35
2, 50
2, 37
等..
我需要查询一个查询,如果有一定比例的状态,以后使用php / symfony将每个银行都可以计算我。
ECT: 1银行: -
status30 - 2 each (20%)
status50 - 4 each (40%)
status - 6 each (60%)
2银行 等等..
怎么做?
答案 0 :(得分:1)
使用SQL中的分组按银行和状态进行分组,并计算每组的行数:
SELECT Bank_ID, status, COUNT(Bank_ID) count FROM int_client_bank WHERE status = 30 or status = 50 or status = 35 or status = 37 GROUP BY Bank_ID, status;
然后,您可以计算所有计数和每行计算百分比,如$row['count'] / $all_count * 100
。
答案 1 :(得分:0)
我相信这是你正在寻找的。您可以使用子查询在MySQL中完成所有操作。
select
myTable.id_bank, myTable.status, count(*) as ct, count(*) / t2.cnt * 100 as pct from myTable
join (
select id_bank, count(*) AS cnt
from myTable
group by id_bank
) as t2 on myTable.id_bank = t2.id_bank
group by myTable.id_bank, myTable.status;
答案 2 :(得分:0)
sphirate.thremer:
我有要求:
SELECT Bank_ID, Status, COUNT(Bank_ID)
FROM int_client_bank
WHERE status = 30
or status = 50
or status = 35
or status = 37
GROUP BY Bank_ID, Status;
并查看数据:
"Bank_ID" "Status" "COUNT(Bank_ID)"
"1" "30" "772"
"1" "35" "58"
"1" "50" "151"
"2" "30" "124"
"2" "35" "27"
"2" "50" "25"
"3" "30" "227"
"3" "35" "16"
"3" "37" "1"
"3" "50" "143"
"4" "30" "337"
"4" "35" "23"
"4" "37" "1"
"4" "50" "98"
"5" "30" "72"
"5" "35" "7"
"5" "50" "9"
"6" "30" "113"
"6" "35" "3"
"6" "50" "68"
"7" "30" "16"
"7" "50" "10"
"8" "30" "13"
"8" "35" "1"
"8" "50" "6"
"9" "30" "16"
"9" "35" "2"
"9" "50" "6"
"10" "30" "4"
"10" "35" "2"
"11" "30" "2"
"11" "50" "2"
"12" "30" "4"
"12" "35" "1"
"12" "50" "1"
"13" "30" "3"
"13" "50" "2"
"14" "30" "5"
"15" "30" "1"
"15" "50" "1"
"16" "30" "1"
"17" "30" "1"
"18" "30" "2"
我如何把它放在symfony中制作JsonResponse?:
return new JsonResponse(array('data' => $result, 'success' => true));: