資料如下
Array
(
[pn] => 007-023
[pn_from] => Stock
)
Array
(
[pn] => 007-007
[pn_from] => Stock
)
Array
(
[pn] => 007-023
[pn_from] => BU Warranty
)
想要的目的是計算pn中重複的次數,合并一個新的二維數組
Array
(
[pn] => 007-023
[pn_qty] => 2
[pn_from] => Stock
)
Array
(
[pn] => 007-007
[pn_qty] => 1
[pn_from] => Stock
)
想通過迴圈來計算重複數,做到這裡有點卡殼了,。。。
$sql_m = "SELECT pn, pn_from FROM pn_s WHERE job_no = 32";
$result_m = pg_query($sql_m);
$i = 0;
while($row_m = pg_fetch_array($result_m)){
print_r ($row_m);
$i++;
}
echo "
";
echo $i;
回複討論(解決方案)
SELECT pn,count(*) as pn_qty, pn_from FROM pn_s group by pn
使用group by pn
ERROR: column "pn_s.pn_from" must appear in the GROUP BY clause or be used in an aggregate function
搞不定。。pn_from必須在GROUP BY或者判斷語句裡面體現出來,但是我又有別的欄位來判斷所需要的行。。
這個是資料。。
先擷取一個array(pn1,pn2,pn3,...)的數組
然後使用array_count_values()函數
然後根據結果處理成你最後想要的數組。。。
資料有誤。。重新提交一下。。萬分感謝兩位的協助
資料如下
Array
(
[pn] => 007-023
[pn_from] => Stock
)
Array
(
[pn] => 007-007
[pn_from] => Stock
)
Array
(
[pn] => 007-023
[pn_from] => BU Warranty
)
想要的目的是計算pn中重複的次數,合并一個新的二維數組
Array
(
[pn] => 007-023
[pn_qty] => 2
[pn_from] => Stock
)
Array
(
[pn] => 007-007
[pn_qty] => 1
[pn_from] => Stock
)
想通過迴圈來計算重複數,做到這裡有點卡殼了,。。。
$sql_m = "SELECT pn, pn_from FROM pn_s WHERE job_no = 32";
$result_m = pg_query($sql_m);
$i = 0;
while($row_m = pg_fetch_array($result_m)){
print_r ($row_m);
$i++;
}
echo "
";
echo $i;
資料有誤。。重新提交一下。。萬分感謝兩位的協助
這個是資料。。
原來也是這麼想的,但是迴圈太臃腫了。。
select pn,pn_from,count(pn) from pn_s where job_no=32 group by pn,pn_from 感謝大家!PG群裡有朋友幫忙寫了個sql。。。