没有分组依据的 COUNT 和 DISTINCT

COUNT and DISTINCT without group by

我有两张桌子。一个是客户,另一个是客户购买的产品。 当我想获取所有产品和客户的列表时,我会这样做:

    SELECT client_name, prod_id FROM TAB_CLIENT
    INNER JOIN TAB_PROD ON prod_client = client_name

所以我得到(例如)

不错。现在我想知道我有多少不同的客户。 所以我尝试使用 COUNT 和 DISTINCT。像这样:

     SELECT COUNT(DISTINCT client_name) AS num_client, client_name, prod_id 
    FROM TAB_CLIENT
    INNER JOIN TAB_PROD ON prod_client = client_name

我想得到:

因此第一列中的“2”是不同客户的总数为 2(Henri 和 Tom),第二列中的客户名称和第三列中的产品名称。 但事实上,如果我添加计数(不同),我只会得到一个结果(好像 num_client 上有一个 "group by")。而且我不想在 client_name 上进行 GROUP BY,因为在这种情况下我会丢失产品。

是否可以在一个查询中执行此操作,还是我必须执行一个 select 进行计数,另一个执行才能获得结果?

我注意到 Stack 中给出的所有示例都是关于 Count/Distinct 只返回数字而不是数字和结果。

谢谢

PS:我是 运行 MariaDB。

SELECT
        ( SELECT COUNT(DISTINCT client_name) FROM TAB_CLIENT ) AS Number_of_clients,
        client_name,
        prod_id
    FROM TAB_CLIENT
    INNER JOIN TAB_PROD ON prod_client = client_name