扫地不过是我表面上的工作,我真正的身份其实是无名老僧-----------手里那根扫把~

再用sql实现一条小学题~

上一篇 / 下一篇  2008-04-14 10:08:02 / 个人分类:三思笔记

P先生、Q先生都具有足够的推理能力。这天,他们正在接受推理面试。
他们知道桌子的抽屉里有如下16张扑克牌:
红桃 A、Q、4
黑桃 J、8、4、2、7、3
草花 K、Q、5、4、6
方块 A、5
约翰教授从这16张牌中挑出一张牌来,并把这张牌的点数告诉P先生,把这张牌
的花色告诉Q先生。
这时,约翰教授问P先生和Q先生:你们能从已知的点数或花色中推知这张牌是什么牌吗?
P先生:“我不知道这张牌。”
Q先生:“我知道你不知道这张牌。”
P先生:“现在我知道这张牌了。”
Q先生:“我也知道了。”
请问:这张牌是什么牌?

使用SQL如下:

SQL> select * from jss_tmp5;
 
TP         VL
---------- ----------
红桃       A
红桃       Q
红桃       4
黑桃       J
黑桃       8
黑桃       4
黑桃       2
黑桃       7
黑桃       3
草花       K
草花       Q
草花       5
草花       4
草花       6
方块       A
方块       5
 
16 rows selected
 
SQL>
SQL> select tp, vl
  2    from (select d.*, count(tp) over(partition by tp) ect
  3            from (select c.tp, vl, count(vl) over(partition by vl) ct
  4                    from (select b.*, min(ct) over(partition by tp) mn
  5                            from (select a.*, count(vl) over(partition by vl) ct
  6                                    from jss_tmp5 a) b) c
  7                   where c.mn > 1) d
  8           where d.ct = 1)
  9   where ect = 1
 10  ;
 
TP         VL
---------- ----------
方块       5


相关阅读:

TAG: 一条sql

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

Open Toolbar