我的问题是如何进行SQL查询以查找订单ID的重复记录,其中产品描述中包含字符串“aaa”或“bbb”。所需的输出:
order_id product_description
8899667 aaa
8899667 bbb
8866352 aaa
8866352 bbb
主要问题是我需要让product_description在字符串上有aaa或bbb,并且具有相同的order_ID。我希望这澄清。
感谢有关此事的任何帮助。
答案 0 :(得分:0)
“发现”含糊不清 - 您想要按照自己的效果输出吗?如果是的话:
select order_id,product_description from table order by order_id,product_description
会得到你想要的东西。如果你想得到重复数,这样的事情可能会有所帮助:
select order_id,count(distinct product_description) as duplicates from table group by order_id order by order_id,duplicates desc
没有更多信息我无法帮助你。 HTH
答案 1 :(得分:0)
您可以为每个COUNT(*)
提取ORDER_ID
,然后选择那些有计数> 1. WHERE
条件负责aaa
或bbb
过滤器值。
SELECT ORDER_ID
FROM
YOUR_TABLE
WHERE (PRODUCT_DESCRIPTION like '%aaa%'
OR PRODUCT_DESCRIPTION like '%bbb%')
GROUP BY ORDER_ID
HAVING COUNT(*) > 1;
答案 2 :(得分:0)
使用相同ORDER_ID和PRODUCT_DESCRIPTION的记录包含'aaa'或'bbb':
SELECT * FROM
YOUR_TABLE
WHERE ORDER_ID IN
(SELECT ORDER_ID
FROM
YOUR_TABLE
GROUP BY ORDER_ID
HAVING COUNT(*) > 1)
AND ( PRODUCT_DESCRIPTION like '%aaa%'
OR PRODUCT_DESCRIPTION like '%bbb%');
包含共享相同ORDER_ID的'aaa'或'bbb'的PRODUCT_DESCRIPTION记录:
SELECT ORDER_ID
FROM
YOUR_TABLE
WHERE
( PRODUCT_DESCRIPTION like '%aaa%'
OR PRODUCT_DESCRIPTION like '%bbb%')
GROUP BY ORDER_ID
HAVING COUNT(*) > 1;
答案 3 :(得分:0)
试试这个......你给出了所需的答案:
SELECT YourTable.order_id,
YourTable.product_description
FROM YourTable
JOIN (SELECT order_id
FROM YourTable
GROUP BY order_id
HAVING COUNT(*) > 1) AS DuplicateRecords
ON (YourTable.order_id = DuplicateRecords.order_id)
ORDER BY YourTable.order_id
答案 4 :(得分:0)
也许尝试使用它:
选择*来自( 选择order_id,列表(product_description)ProdDesc 来自tbl 按order_id分组 )TempTable,其中TempTable.ProdDesc喜欢'%aaa%' 和TempTable.ProdDesc类似'%bbb%'