我需要有关sql查询的帮助。首先,我有一个具有以下结构的数据库(示例):
ID NAME VALUE
123 ABC_A文本文本文本
123 ABC_A更多文字
123 ABC_A更多文字
123 ABC_B其他一些文字
现在,我希望获得名称为“ABC_A”的所有行的不同值。我试图通过小组获得那些,但没有成功。
答案 0 :(得分:4)
这就是你想要的吗?
SELECT DISTINCT Value
FROM tableName
WHERE ID = 123 AND Name = 'ABC_A'
但如果 ID和名称的值是唯一的,那么您可以省略 distinct
(以避免过度使用服务器 )
SELECT Value
FROM tableName
WHERE ID = 123 AND Name = 'ABC_A'
答案 1 :(得分:2)
我希望获得名称为“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';
答案 2 :(得分:2)
除John之外,如果您使用关键字Distinct,则只会获得不同的值,因此
SELECT DISTINCT Value
FROM tableName
WHERE ID = 123 AND
Name = 'ABC_A'
答案 3 :(得分:2)
GROUP BY
语句与聚合函数结合使用,将结果集分组为一列或多列。
在上面的例子中,为什么不使用简单的where子句
select * from <tableName> where name ='ABC_A'