亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

提問個奇怪的sql

提問個奇怪的sql

楊__羊羊 2018-12-07 07:56:24
話不多說直接上測試代碼: create table persontest( name nvarchar(10), age int) insert into persontest(name, age)values('a',3),('a',3),('b',4),('b', 3) 以上sql跑完了之后你應該能得到大概這么一個表: name agea 3a 3b 4b 3 現在我要進行類似這么一個查找(該sql肯定是不能跑的, 我只是用它來表達我想要做的查詢) select name, agefrom persontest group by namehaving all age = 3 ? 我期待的結果是: (a,3), 或者能直接查出(a)也是可以接受的。 ? 因為對于a來說, 所有的a的age都是3,因此a符合條件, 我要a了 b的話, 有一個4, 所以不全是3, 因此b不合格。b被踢掉了。 ? 就是這么個需求。 ? 由于聚合函數里我沒找到類似于"all"這樣的函數, 所以弄不清這個到底如何寫。 有誰有辦法嗎?非常感謝?!A豆不是問題。 補充:數據庫是sql server
查看完整描述

8 回答

?
當年話下

TA貢獻1890條經驗 獲得超9個贊

select name from (
select name,age
from persontest
group by name,age) as n
group by name
having COUNT(1)=1

?

你是要找?name分組后,所有age都相同的么.?

查看完整回答
反對 回復 2019-01-07
?
千萬里不及你

TA貢獻1784條經驗 獲得超9個贊

你的意思是要找所有age=3且沒有age<>3的name是嗎?

查看完整回答
反對 回復 2019-01-07
?
牧羊人nacy

TA貢獻1862條經驗 獲得超7個贊

雖然沒讀懂你的話, 但是我感覺你說的應該就是我的意思。?

比如全天下叫張三的人今年都3歲, 那就顯示張三

而全天下叫李四的人, 有三歲的有四歲的, 不顯示李四。?

全天下叫王五的人, 全都不是三歲的, 不顯示王五。

查看完整回答
反對 回復 2019-01-07
?
皈依舞

TA貢獻1851條經驗 獲得超3個贊

太難了。。

查看完整回答
反對 回復 2019-01-07
?
犯罪嫌疑人X

TA貢獻2080條經驗 獲得超4個贊

select ?name , min(age) from?persontest group by?name ? having min(age)=max(age)

查看完整回答
反對 回復 2019-01-07
?
喵喵時光機

TA貢獻1846條經驗 獲得超7個贊

select name?,age, COUNT(*) AS num

from persontest

group by name,age

having age= 2

查看完整回答
反對 回復 2019-01-07
  • 8 回答
  • 0 關注
  • 547 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號