Mysql 显示单个表中重叠行的SQL查询?

Mysql 显示单个表中重叠行的SQL查询?,mysql,sql,Mysql,Sql,我一直在谷歌上搜索,想找到答案,但很难找到。我甚至不确定我问的是否正确,但我会尽我最大的努力: 我的数据: Fruit | Attributes ------------------- Apple | Dark Red Apple | Green Apple | Yellow Apple | Light Red Apple | Greenish Yellow Apple | Dark Yellow Apple | Brown Banana | Yellow Banana | Gr

我一直在谷歌上搜索,想找到答案,但很难找到。我甚至不确定我问的是否正确,但我会尽我最大的努力:

我的数据:

Fruit  | Attributes
-------------------
Apple  | Dark Red
Apple  | Green
Apple  | Yellow
Apple  | Light Red
Apple  | Greenish Yellow
Apple  | Dark Yellow
Apple  | Brown
Banana | Yellow
Banana | Greenish Yellow
Banana | Dark Yellow 
Banana | Yellow 
Banana | Brown
Banana | Red
Banana | Black
我想做的是运行一个查询,为所有重叠的水果(在本例中只有苹果和香蕉)输出多少属性

希望我已经清楚了。。。如果我需要澄清,请告诉我

像这样的

SELECT DISTINCT ATTRIBUTE, FRUIT 
FROM FRUIT_TABLE
WHERE ATTRIBUTE IN (
    SELECT ATTRIBUTE
    FROM FRUIT_TABLE
    GROUP BY ATTRIBUTE
    HAVING COUNT(DISTINCT FRUIT_NAME) > 1 )
ORDER BY ATTRIBUTE, FRUIT_NAME
我以类似的方式在纽约市和纽约州进行了尝试,效果很好:

SELECT DISTINCT CITY, STATE 
FROM ADDRESS
WHERE CITY IN (
    SELECT CITY
    FROM ADDRESS
    GROUP BY CITY
    HAVING COUNT(DISTINCT STATE) > 1)
ORDER BY CITY, STATE    
  • 浴池铌
  • 沐浴
  • 贝德福德酒店
  • 贝德福德QC
  • 布兰登MB
  • 布兰登山
  • 布朗普顿酒店
  • 布兰顿
。。。等等

SELECT ATTRIBUTE, COUNT(*) FROM (
    SELECT DISTINCT ATTRIBUTE, FRUIT 
    FROM FRUIT_TABLE
    WHERE ATTRIBUTE IN (
        SELECT ATTRIBUTE
        FROM FRUIT_TABLE
        GROUP BY ATTRIBUTE
        HAVING COUNT(DISTINCT FRUIT_NAME) > 1 )
        ORDER BY ATTRIBUTE, FRUIT_NAME ) AS RESULTS
GROUP BY ATTRIBUTE

你只想比较两个类别?所以你想得到属性相同但结果不同的行数?就像这样。非常感谢。我在玩这个,在返回实际发生的重叠时遇到了一些问题。输出所有显示重叠的数据工作正常…有什么想法吗?理想情况下,您希望在输出中将结果和出现次数视为两列。只需将整个结果集包装在group by(请参见编辑)中。如果您想要结果,只需将其更改为FROUT而不是属性