列中的最小值最大但具有特定条件

时间:2014-03-30 02:50:10

标签: mysql

我有一个包含3个coluomn的MySql表:Nip,Bidang和Total。 我想用相同的bidang计算总数的最小值和最大值。但是我不想计算所有颜色的最小值和最大值。

示例数据:

NIP    Bidang    Total
1      A         10
2      A         5
3      A         1
4      B         4
5      B         7
6      C         8
7      C         9

结果栏:

MIN
1
1
1
4
4
8
8 

2 个答案:

答案 0 :(得分:0)

Select bidang, min(total) MyMin, Max(total) myMax
From tableName
group by bidang

NIP bidang total
1   A      10
2   A      5
3   A      1
4   B      4
5   B      7
6   C      8
7   C      9

应该返回

A 1 10
B 4 7
C 8 9

答案 1 :(得分:0)

只需这样做:

SELECT * FROM 
(
(SELECT Bidang FROM TableName) T1 LEFT OUTER JOIN
(SELECT bidang, MIN(Total) MinVal, MAX(Total) MaxVal
FROM TableName
GROUP BY Bidang) T2 ON T1.Bidang=T2.Bidang
)

结果:

BIDANG  MINVAL  MAXVAL
A       1       10
A       1       10
A       1       10
B       4       7
B       4       7
C       8       9
C       8       9

请参阅SQL Fiddle中的结果。

修改

要查看“总计”列,请将Total添加到第一个查询。

SELECT * FROM 
(
(SELECT NIP,Bidang,Total FROM TableName) T1 LEFT OUTER JOIN
(SELECT bidang, MIN(total) MinVal, MAX(Total) MaxVal
FROM TableName
GROUP BY Bidang) T2 ON T1.Bidang=T2.Bidang
)

结果:

NIP    BIDANG   TOTAL   MINVAL  MAXVAL
1      A        10      1       10
2      A        5       1       10
3      A        1       1       10
4      B        4       4       7
5      B        7       4       7
6      C        8       8       9
7      C        9       8       9

请参阅SQL Fiddle中的结果。