2016-03-22 10 views
0

私はのように見えるMySQLのクエリからテーブルに相関値を取得しようとしている。結果を考えると相関値

c  | d 
---------------- 
'1,99', '30,99' 
'5,99', '8,46' 
'9,99', '14,99' 
'11,79', '17,24' 
'12,99', '19,44' 
'15,99', '22,44' 
'22,49', '34,48' 

select min(c), d 
from example 

テーブルexampleは次のようになります

1,99 & 34,48 

期待される結果:

1,99 & 30,99 

この場合のmin(c)の相関値は「30,99」です。どうやってするか?

答えて

1

あなたはサブクエリを使用する必要があります。

select e.* 
    from (select min(c) as c from example) x 
    join example e 
    on x.c = e.c; 
+0

'1.99'の行が複数ある場合はどうすればよいですか? – frgtv10

+0

この例では、複数の行を返します。必要なものによって異なります。最小値/最大値/ランダム値を返したり、それらを連結して返したりすることができます。 – piotrgajow

2

あなたは、サブクエリでそれを行うことができます。

SELECT * FROM example 
WHERE c = (SELECT min(c) from example) 

はEDIT:あなたは、答えに条件を記録した1、より多くのがあるかどうあなたが選ぶものを決める必要があります。

SELECT * FROM example 
WHERE c = (SELECT min(c) from example) 
ORDER BY d 
LIMIT 1 

これは、最小d値で1になります。

最大にするには、DESCをdの後にクエリで追加します。

+0

minの値を持つ行が2つ以上ある場合はどうでしょうか? – Bampfer

+0

'1.99'の行が複数ある場合はどうすればよいですか? – frgtv10

+1

@ frgtv10それ以上のものがある場合は、そのうちのどれをお望みですか? – sagi