gpt4 book ai didi

mysql - 使用 GROUP_CONCAT 和 COUNT 对数据进行排序

转载 作者:行者123 更新时间:2023-11-30 22:48:11 25 4
gpt4 key购买 nike

我有表 produktransaksi_detail

然后,我有两个问题。

第一个查询:

SELECT produk.idproduk, produk.nmproduk, COUNT(*) AS total
FROM produk, transaksi_detail
WHERE produk.idproduk=transaksi_detail.idproduk
GROUP BY produk.nmproduk

结果:

idproduk   |   nmproduk    |    total_order
-------------------------------------------
I3 coffe 6
I4 pencil 2
I1 bread 6
I2 snack 7
I5 tea 2

第二个查询:

SELECT GROUP_CONCAT(produk.idproduk) AS idproduk, transaksi_detail.idtransaksi
FROM produk, transaksi_detail
WHERE produk.idproduk=transaksi_detail.idproduk
GROUP BY transaksi_detail.idtransaksi

结果:

idproduk   |   idtransaction
----------------------------
I2, I1, I5 1
I2, I4 2
I2, I3 3
I2, I1, I4 4
I1, I3 5
I2, I3 7
I1, I3 8

如何使结果类似于第二个结果,但“idproduk->GROUP_CONCAT”排序依据是第一个查询中的 total_order。像这样:

 idproduk   |   idtransaction
----------------------------
I1, I2, I5 1
I4, I2 2
I3, I2 3
I4, I2, I1 4
I3, I1 5
I2, I3 7
I1, I3 8

“idproduk”第一个来自“I2”,因为 total_order 比另一个 'desc' 大。

最佳答案

你可以试试

SELECT GROUP_CONCAT(order_count.idproduk ORDER BY order_count.total DESC) AS idproduk, 
transaksi_detail.idtransaksi
FROM (SELECT produk.idproduk,
COUNT(*) AS total
FROM produk,
transaksi_detail
WHERE produk.idproduk = transaksi_detail.idproduk
GROUP BY produk.nmproduk) order_count
INNER JOIN transaksi_detail
ON order_count.idproduk = transaksi_detail.idproduk
GROUP BY transaksi_detail.idtransaksi

关于mysql - 使用 GROUP_CONCAT 和 COUNT 对数据进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28960868/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com