【问题标题】:write a sql Query to fetch records with multiple values编写一个 sql 查询以获取具有多个值的记录
【发布时间】:2021-12-27 11:27:37
【问题描述】:

我有一张桌子,上面有卷号,名字。但是对于一些卷号,有不同名字的记录

表,卷号 2 和 6 有多个卷号相同但名称不同的记录。

我需要编写一个查询/游标来从上表 Student 中获取此类记录。

例如:表格 - 学生

|Roll No.| Name |
| -------| -----|
| 1      | A    |
| 1      | A    |
| 2      | B    |
| 2      | C    |
| 2      | D    |
| 3      | E    |
| 3      | E    |
| 4      | F    |
| 5      | G    |
| 6      | H    |
| 6      | I    |

预期的输出应该是 2, 6(具有多条记录但名称不同的卷号)

数字 1、3 不应出现在预期结果中,因为它们在所有记录中都具有相同的名称

【问题讨论】:

  • 从上表中获取此类记录您是否只需要有问题的 Roll No. 值,此值与 CSV Names 列表,此类值的完整行数组,唯一的行数组?为显示的数据显示所需的输出。
  • 那么,是什么让您无法编写查询?你有什么问题?
  • 再次,您在编写此查询时遇到了什么问题?然后,所需的输出仍然完全不清楚。 “获取此类记录”意味着卷号 2 为三行,卷号 6 为两行。但“预期输出应为 2、6”表示您只需要两个结果行。并且只有一列(卷号)。或者你甚至想要一行只有一个包含逗号分隔的卷号的字符串?所以,再次:请显示预期的结果。在表格中,就像您显示原始表格数据一样。

标签: mysql sql mainframe


【解决方案1】:

在 MySQL 中你可以进行下一个查询:

select roll_no
from Student
group by roll_no
having count(distinct name) > 1;

MySQL group by

结果:

+=========+
| roll_no |
+=========+
| 2       |
+---------+
| 6       |
+---------+

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多