2在PHP MYSql中使用UNION进行分组
在上面,我还需要pl.aadby分组 根据以上内容,我得到以下信息:/ 但我需要aadby的以下分组: 如果我移除左下方的连接 在prdb.cutaname=cutid.cutname上左连接剪切为cutid 然后我不需要按pl.prdid分组,然后我可以按pl.prdid分组 pl.aadby…但结果计数增加,因此按pl.prdby分组 减少我的计数,这是正确的结果,但如何做另一个 aadby的分组方式2在PHP MYSql中使用UNION进行分组,php,mysql,count,group-by,sum,Php,Mysql,Count,Group By,Sum,在上面,我还需要pl.aadby分组 根据以上内容,我得到以下信息:/ 但我需要aadby的以下分组: 如果我移除左下方的连接 在prdb.cutaname=cutid.cutname上左连接剪切为cutid 然后我不需要按pl.prdid分组,然后我可以按pl.prdid分组 pl.aadby…但结果计数增加,因此按pl.prdby分组 减少我的计数,这是正确的结果,但如何做另一个 aadby的分组方式 基于您提供的样本数据。。你应该使用 count | aadby | wghval 5
基于您提供的样本数据。。你应该使用
count | aadby | wghval
5 | name1 | 0.9
8 | name2 | 0.5
我不知道你的数据,也不知道你想得到什么逻辑输出。但有一种方法我可以如下所示使用您的查询作为子查询
....
WHERE pl.aadby = 103
GROUP BY aadby
ORDER BY aadby ASC
其中pl.aadby=103 GROUP BY pl.aadby仅使用此选项当我按pl.aadby分组时,它不会显示我需要的内容它显示示例数据现在显示您的表数据,如果我按pl.prdid删除GROUP BY pl.prdid,则我会获得pl的重复值,prdid如果我按pl.aadby保留GROUP,则我会获得名称1=2的计数,但是如果我删除它并用GROUP BY pl.aadby替换它,那么我得到的名称1=56,因此我需要两个GROUPBY当我执行GROUP BY pl.aadby时,它没有显示我需要什么,它显示我的样本数据,如果我删除GROUP BY pl.prdid,那么我得到pl的重复值,prdid“它显示我的样本数据”是什么意思。。我根据你提供的样品来评估你的问题。。。。这不是样本数据…根据我的查询输出。。。。但我需要aadbyyes分组的输出..它根据需要显示结果..让我用我的整个查询进行测试..谢谢bhailahi我不知道为什么..但是当我在prdb.cutaname=cutid.cutname上删除左连接切割作为cutid时,计数保持不变,但wghvalue得到更改…这是name1计数=2和wghvalue=45的左连接,如果我删除左连接,则name1计数=2和wghvalue=23
count | aadby | wghval
5 | name1 | 0.9
8 | name2 | 0.5
....
WHERE pl.aadby = 103
GROUP BY aadby
ORDER BY aadby ASC
select sum(t1.count) as count,t1.addby,sum(t1.wghvalue) wghvalue
from
(SELECT
COUNT(pl.id) as count,addby,SUM(pl.wghvalue) as wghvalue
FROM product AS prod
LEFT JOIN producta AS prda ON prod.id = prda.id
LEFT JOIN prdoctb AS prdb ON prod.pid = prda.pid
LEFT JOIN
(
SELECT
id,
wghvalue,
addby,prdid
FROM prdentry
WHERE 1=1 GROUP BY prdid
UNION
SELECT
id,
wghvalue,
addby,
prdid
FROM
prdentry
WHERE 1=1
GROUP BY prdid
) AS pl ON( pl.prdid = prda.prdid )
LEFT JOIN cut AS cutid ON prdb.cutaname = cutid.cutname
WHERE pl.aadby = 103
GROUP BY pl.prdid
ORDER BY
pl.prdid ASC,
pl.aadby ASC ) t1
group by t1.addby