如何编写SQL语句,根据X、Y和Z列返回不同的记录,以及列a在表中的第一个值



我很难理解这一点。

我有一个这样的数据表:

表:

<表类>Column_AColumn_XColumn_YColumn_Ztbody><<tr>1234红椿木城市从1235星汽车从1226星汽车从3234红椿木城市从4435星汽车从5555星汽车从5555红椿木城市从3333星汽车从1111星汽车从

我更愿意在这里简单地获取例如在Column_A中具有最低值的那个:

SELECT Column_X, Column_Y, Column_Z, MIN(Column_A) AS Column_A
FROM yourtable
GROUP BY Column_X, Column_Y, Column_Z;

这很简单。它将根据您的示例数据产生以下结果:

<表类>Column_XColumn_YColumn_ZColumn_Atbody><<tr>星汽车从1111图恩城市从1234

你猜了

Top 1(Column_A)???

典型的解决方案是

MIN(Column_a)

当然还有其他的,比如MAX,或者使用ORDER BY,然后选择第一行。

关键是要使用"aggregate"函数与GROUP BY。一些数据库供应商,例如mysql,在这一点上有点松懈。返回单个任意行的值。但是为了符合sql92,最好使用聚合。这样你就知道规格了,返回的结果将是完全可预测的和可再生的。

I Tried on MYSQL:

SELECT Column_A, Column_X, Column_Y, Column_Z
FROM test
GROUP BY Column_X ORDER BY  Column_A ASC

这将给出期望的输出。

相关内容

最新更新