我有以下查询,但它没有给出预期的结果。选择所有具有多于1个代码的名称
SELECT
FIRST_NAME + ' ' + LAST_NAME , ORDER_CODE
FROM
CUSTOMER
HAVING
COUNT(ORDER_CODE) > 1
我想查看所有具有2个或更多唯一order_codes的合并first +姓氏。我如何查询这个?
我有以下查询,但它没有给出预期的结果。选择所有具有多于1个代码的名称
SELECT
FIRST_NAME + ' ' + LAST_NAME , ORDER_CODE
FROM
CUSTOMER
HAVING
COUNT(ORDER_CODE) > 1
我想查看所有具有2个或更多唯一order_codes的合并first +姓氏。我如何查询这个?
我想你想count(distinct)
以及group by
:
SELECT (FIRST_NAME + ' ' + LAST_NAME), ORDER_CODE
FROM CUSTOMER
GROUP BY (FIRST_NAME + ' ' + LAST_NAME)
HAVING COUNT(DISTINCT ORDER_CODE) > 1;
这还假定FIRST_NAME
和LAST_NAME
从来NULL
。
这一个工作!谢谢 –
在派生表中包装名称连接部分 - 以避免重复连接代码。
GROUP BY
它的结果,并使用HAVING COUNT DISTINCT
只与一个以上的不同order_code返回名称:
select full_name
from
(
select FIRST_NAME + ' ' + LAST_NAME as full_name, ORDER_CODE
FROM CUSTOMER
) dt
group by full_name
having count(distinct ORDER_CODE) > 1
哪个DBMS您使用的? (答案可能是产品特定的。) – jarlh
您是否需要返回order_codes,或只需要名称? – jarlh
名称应该没问题 –