Я пытаюсь найти наиболее покупаемые продукты, но только для учета отдельных идентификаторов пользователей. В основном мой клиент хочет прекратить дублировать покупки у одного и того же пользователя, чтобы они не могли повлиять на график/бестселлеров. Мне нужно подсчитать все элементы order_items для этого продукта, используя только идентификаторы Distinct users. В настоящее время результаты подсчитывают все order_items, поэтому Distinct не работает.mySql Distinct - группа по выпуску
Любая помощь и я буду благодарна.
Заранее спасибо
SELECT *
FROM
(SELECT DISTINCT
order_item_meta_3.meta_value as distinct_user_order_items_id,
order_item_meta_2.meta_value as product_id,
SUM(order_item_meta.meta_value) as item_quantity
FROM
wp_woocommerce_order_items as order_items
LEFT JOIN wp_woocommerce_order_itemmeta as order_item_meta
ON order_items.order_item_id = order_item_meta.order_item_id
LEFT JOIN wp_woocommerce_order_itemmeta as order_item_meta_2
ON order_items.order_item_id = order_item_meta_2.order_item_id
LEFT JOIN wp_woocommerce_order_itemmeta as order_item_meta_3
ON order_items.order_item_id = order_item_meta_3.order_item_id
LEFT JOIN wp_posts AS posts
ON order_items.order_id = posts.ID
LEFT JOIN wp_term_relationships AS rel
ON posts.ID = rel.object_ID
LEFT JOIN wp_term_taxonomy AS tax
USING(term_taxonomy_id)
LEFT JOIN wp_terms AS term
USING(term_id)
WHERE
posts.post_type = 'shop_order'
AND posts.post_status = 'publish'
AND tax.taxonomy = 'shop_order_status'
AND term.slug IN ('completed','processing','on-hold')
AND order_items.order_item_type = 'line_item'
AND order_item_meta.meta_key = '_qty'
AND order_item_meta_2.meta_key = '_product_id'
AND order_item_meta_3.meta_key = '_user_id'
GROUP BY
order_item_meta_2.meta_value
ORDER BY
item_quantity DESC) as order_table,
wp_posts
LEFT JOIN wp_postmeta as mk1
ON wp_posts.ID = mk1.post_id
LEFT JOIN wp_postmeta as mk2
ON wp_posts.ID = mk2.post_id
WHERE
order_table.product_id = wp_posts.ID
AND wp_posts.ID = mk1.post_id
AND mk1.meta_key = 'is_album'
AND mk1.meta_value = 0
AND mk2.meta_key = '_price'
AND mk2.meta_value = 0
Вы знаете, DISTINCT действует на все столбцы в SELECT, не так ли? – Strawberry
добавить order_item_meta_3.meta_value для группировки по внутреннему выбору ... удалить отчетливые. – xQbert
Большинство из них (оптимизировано как) INNER JOINs! Это было ваше намерение? – Strawberry