求一組數中,最大值方法

2021-04-01 08:52:12 字數 2235 閱讀 8359

--原貼 http://***munity.csdn.***/expert/topic/4169/4169825.xml?temp=.4744684

我有一張表a(bmmc,bmbh,lxr,tel,value)

現在要求按bmbh分類,並把相應的value最大的那條記錄顯示出來,即a

bmmc bmbh,lxr,tel,value

aa     1   w1  t1  3

bb     2   w2  t2  4

cc     3   w3  t3  5

aa     1   w4  t4  6

aa     1   w5  t5  7

bb     2   w6  t6  8

cc     3   w7  t7  9

顯示為bmmc bmbh,lxr,tel,value

aa    1    w5  t5   7

bb    2   w6  t6  8

cc    3   w7  t7  9

--方法一:

--測試環境

declare @t table(bmmc varchar(2),bmbh varchar(1),lxr varchar(2),tel varchar(2),value int)

insert into @t select 'aa','1','w1','t1',3

union all select 'bb','2','w2','t2',4

union all select 'cc','3','w3','t3',5

union all select 'aa','1','w4','t4',6

union all select 'aa','1','w5','t5',7

union all select 'bb','2','w6','t6',8

union all select 'cc','3','w7','t7',9

--查詢

select bmmc=(select max(bmmc) from @t where bmbh=a.bmbh),

bmbh=(select max(bmbh) from @t where bmbh=a.bmbh),

lxr=(select max(lxr) from @t where bmbh=a.bmbh),

tel=(select max(tel) from @t where bmbh=a.bmbh),

value=(select max(value) from @t where bmbh=a.bmbh)

from @t a

group by bmbh

--結果

bmmc bmbh lxr  tel  value      

---- ---- ---- ---- -----------

aa   1    w5   t5   7

bb   2    w6   t6   8

cc   3    w7   t7   9

(所影響的行數為 3 行)

--方法二

declare @t table(bmmc varchar(2),bmbh varchar(1),lxr varchar(2),tel varchar(2),value int)

insert into @t select 'aa','1','w1','t1',3

union all select 'bb','2','w2','t2',4

union all select 'cc','3','w3','t3',5

union all select 'aa','1','w4','t4',6

union all select 'aa','1','w5','t5',7

union all select 'bb','2','w6','t6',8

union all select 'cc','3','w7','t7',9

select * from @t b where not exists(select 1 from @t a where a.bmmc=b.bmmc and a.value>b.value )

--結果

bmmc bmbh lxr  tel  value      

---- ---- ---- ---- -----------

aa   1    w5   t5   7

bb   2    w6   t6   8

cc   3    w7   t7   9

(所影響的行數為 3 行)

求一組數的所有組合。

例如1 2 3的所有組合數,有1 2 3 12 13 23 123共7中。演算法思路 n個數能夠構成長度為1的組合 長度為2的組合 長度為n的組合。在求n個數的長度為m m 1 m n 的組合時,我們把這n個數分成兩部分 第一個數和其餘的所有數。如果組合裡包含第一個數,則下一步在剩餘的數中選取m 1...

一組陣列中最大子陣列之和 (更新)

1 xiaosong du 2015 3 22 2 include 3 include 4 using namespace std 5 define n 100067 void main 8 19 cout 2021 maxd a 0 22 for int i 0 i n i 2330 if d 0...

一組數排序

小夥伴們剛接觸到c語言程式設計時,排序肯定是會經常遇到的問題型別,這裡貼出氣泡排序和選擇排序的 氣泡排序bubble sort 動態感覺上是最大值 或最小值 經過依次遍歷後,不斷下沉 或上浮 出來。第一次遍歷,這組數最大的 或最小值 顯現出來,出現在陣列的開頭或結尾,然後可以對剩下的陣列在進行一遍操...

一組數中最小值與和的乘積最大的段

一組數,找到一個區間,使這個區間的最小值 min 和這個區間的和 sum 的乘積 min sum 最大,返回這個最大值。輸入5 10 2 7 6 8 輸出解釋 7 6 8 1 思路 二分法 最小值處分割 複雜度 nlogn 只有去掉最小值才可能出現更大的結果,去掉最小值,出現左右兩部分。二分,最小值...

利用分治法求一組資料中最大的兩個數和最小的兩個數。

利用分治法求一組資料中最大的兩個數和最小的兩個數。在這裡插入 片 include define n 10 void max min int a,int m,int n,int min1,int min2,int max1,int max2 int main void int min1,min2 in...