Mysql 如何获取不带';列的值是否相同?

Mysql 如何获取不带';列的值是否相同?,mysql,sql,Mysql,Sql,我需要确定在一组行中价格列的值不相同的行。例如,我想从表中获取grp2交易,因为第7行的价格与grp2中的其他行不匹配 我现在还不知道哪一组有任何不匹配的地方。需要检查表中的所有行,确定是否不匹配,然后获取记录。 下面只是一个示例数据片段 主id 价格 组id 1. 99 grp1 2. 99 grp1 3. 99 grp1 4. 100.5 grp2 5. 100.5 grp2 6. 100.5 grp2 7. 100.55 grp2 您可以将HAVING子句与GROUPingBYprice一

我需要确定在一组行中价格列的值不相同的行。例如,我想从表中获取grp2交易,因为第7行的价格与grp2中的其他行不匹配


我现在还不知道哪一组有任何不匹配的地方。需要检查表中的所有行,确定是否不匹配,然后获取记录。 下面只是一个示例数据片段

主id 价格 组id 1. 99 grp1 2. 99 grp1 3. 99 grp1 4. 100.5 grp2 5. 100.5 grp2 6. 100.5 grp2 7. 100.55 grp2
您可以将
HAVING
子句与
GROUP
ing
BY
price一起使用

SELECT * 
  FROM tab
 WHERE price IN (SELECT price
                   FROM tab
                  WHERE group_id = 'grp2'
                  GROUP BY price
                 HAVING COUNT(*)=1)
如果您的DB版本是
8
,则更愿意使用
SUM()
窗口函数来计算您想要的值,例如

SELECT primary_id, price, group_id
  FROM (
        SELECT t.*,
               SUM(group_id='grp2') 
               OVER (PARTITION BY price) AS count
          FROM tab AS t
       ) AS t
  WHERE count = 1 

尝试查看
不同的
和/或
分组依据
。通过阅读您的问题,我也不确定您是否在寻找一个简单的
WHERE
子句,即
WHERE group_id=“grp2”和primary_id=7
您的DB版本是什么?我不知道是否存在任何不匹配以及在哪个组中。需要检查表中的所有行,确定是否不匹配,然后获取记录。