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而不是属性