2017-05-30 2 views
0

ich eine Abfrage, die Spaltehöchsten Wert mit Abfrageergebnis in mysql erhält

+------+------+------------+--------------------+ 
| id | name | work_date | daily_typing_pages | 
+------+------+------------+--------------------+ 
| 1 | John | 2007-01-24 |  250   | 
| 2 | Ram | 2007-05-27 |  220   | 
| 3 | Jack | 2007-05-06 |  170   | 
| 3 | Jack | 2007-04-06 |  100   | 
| 4 | Jill | 2007-04-06 |  220   | 
| 5 | Zara | 2007-06-06 |  300   | 
| 5 | Zara | 2007-02-06 |  350   | 
+------+------+------------+--------------------+ 

führt ich meine Leistung max Wert dieses Ergebnisses will in einer anderen Spalte wie seine

+------+------+------------+--------------------+-----------+ 
| id | name | work_date | daily_typing_pages | Max daily| 
+------+------+------------+--------------------+-----------+ 
| 1 | John | 2007-01-24 |  250   | 350  | 
| 2 | Ram | 2007-05-27 |  220   | 350  | 
| 3 | Jack | 2007-05-06 |  170   | 350  | 
| 3 | Jack | 2007-04-06 |  100   | 350  | 
| 4 | Jill | 2007-04-06 |  220   | 350  | 
| 5 | Zara | 2007-06-06 |  300   | 350  | 
| 5 | Zara | 2007-02-06 |  350   | 350  | 
+------+------+------------+--------------------+-----------+ 
+1

Sie können eine 'CROSS JOIN' mit einer abgeleiteten Tabelle verwenden, die den maximalen Wert zurückgibt. Wenn Sie uns die Struktur Ihrer Tabellen zeigen, können wir möglicherweise eine konkrete Anfrage stellen. –

Antwort

0
set @maxValue = (select max(daily_typing_pages) from your_table); 
select *, @maxValue from your_table 

diese verwenden Sie müssen Join-Bedingung nicht zu verwenden.

0

den max Berechnen das daily_typing_pages Feld in einer Unterabfrage und kommen sie als abgeleitete Tabelle zu Ihrer Hauptabfrage ohne Join-Bedingung:

select * from yourtable 
inner join (select max(daily_typing_pages) as max_daily from yourtable) t 

Der Join ohne Join-Bedingung führt dazu, dass jeder Datensatz aus beiden Abfragen jedem Datensatz aus der anderen Tabelle zugeordnet wird.

Alternativ können Sie eine korrelierte Unterabfrage in der Auswahlliste, wenn Sie vermeiden wollen, schließt sich:

select yourtable.*, (select max(daily_typing_pages) from yourtable) as max_daily from yourtable 
0

können Sie auch diese Abfrage

select *,(select max(daily_typing_pages) from your_table) as max_daily from your_table 

In dieser Abfrage verwenden Sie neue Spalte als max_daily deren Wert anhängen kann, ist max (daily_typing_pages)

0

Sie so etwas wie dieses verwenden können,

select *, HighestValue = (select max(TotalAmount) from [dbo].[Order]) from [NorthWindDemo].[dbo].[Order] 
Verwandte Themen