我需要有关 sql 查询的帮助。首先,我有一个具有以下结构的数据库(示例):
ID NAME VALUE
123 ABC_A Text Text Text
123 ABC_A Some more Text
123 ABC_A Even more Text
123 ABC_B some other text
现在,我想获取名称为“ABC_A”的行的所有不同值。我试图通过 group by 和 have 来获得这些,但没有成功。
我需要有关 sql 查询的帮助。首先,我有一个具有以下结构的数据库(示例):
ID NAME VALUE
123 ABC_A Text Text Text
123 ABC_A Some more Text
123 ABC_A Even more Text
123 ABC_B some other text
现在,我想获取名称为“ABC_A”的行的所有不同值。我试图通过 group by 和 have 来获得这些,但没有成功。
这是你想要的吗?
SELECT DISTINCT Value
FROM tableName
WHERE ID = 123 AND Name = 'ABC_A'
但如果ID 和 Name 的值是唯一的,那么您可以省略 distinct
(以避免过度杀伤服务器)
SELECT Value
FROM tableName
WHERE ID = 123 AND Name = 'ABC_A'
我想获取名称为“ABC_A”的行的所有不同值
例如:
SELECT value, count(value) FROM tbl WHERE name = 'ABC_A' GROUP BY value;
如果您不需要一个值出现的次数,请将其删除,或使用DISTINCT
:
SELECT DISTINCT value FROM tbl WHERE name = 'ABC_A';
如果您还希望通过 ID 获得不同的行值,
SELECT value, count(value)
FROM tbl
WHERE id = 123 AND name = 'ABC_A'
GROUP BY value;
或者,如果您想要“全部”不同的值(也有重复值),请删除GROUP BY
(并且您不再可以使用count()
,它始终为 1):
SELECT value FROM tbl WHERE id = 123 AND name = 'ABC_A';
除了 John,如果您使用关键字 Distinct,您只能获得不同的值,因此
SELECT DISTINCT Value
FROM tableName
WHERE ID = 123 AND
Name = 'ABC_A'
该GROUP BY
语句与聚合函数一起使用,以按一列或多列对结果集进行分组。
在上述情况下,为什么不使用简单的 where 子句
select * from <tableName> where name ='ABC_A'