楼主: onetwo
跳转到指定楼层
上一主题 下一主题
收起左侧

[面试经验] FB data scientist, analytics 电面

 
🔗
sagaam 2018-5-9 14:11:55 | 只看该作者
全局:
SELECT SUM(max_msg)
FROM . ----
        (SELECT USER_A user, MAX(number_messages) max_msg. Waral dи,
        FROM table. From 1point 3acres bbs
                WHERE date = '2018-05-06'
        GROUP BY USER_A ..

        UNION ALL ..

        SELECT USER_B user, MAX(number_messages) max_msg
        FROM table
                WHERE date = '2018-05-06'
        GROUP BY USER_B) /.

SELECT SUM(number_messages) all_msg_all_contacts

大家帮忙看看对吗. ----

补充内容 (2018-5-9 14:18):
SELECT SUM(b.final_max_msg)
FROM

        (SELECT a.user user, MAX(a.max_msg) final_max_msg
        FROM
                (SELECT USER_A user, MAX(number_messages) max_msg
                FROM table
                        WHERE date = '2018-05-06'
                GROUP BY...
回复

使用道具 举报

🔗
sagaam 2018-5-9 14:18:21 | 只看该作者
全局:
sagaam 发表于 2018-5-9 14:11
SELECT SUM(max_msg)
FROM
        (SELECT USER_A user, MAX(number_messages) max_msg

SELECT SUM(b.final_max_msg)
FROM

        (SELECT a.user user, MAX(a.max_msg) final_max_msg
        FROM
                (SELECT USER_A user, MAX(number_messages) max_msg
                FROM table
                        WHERE date = '2018-05-06'
                GROUP BY USER_A

                UNION ALL.

                SELECT USER_B user, MAX(number_messages) max_msg
                FROM table
                        WHERE date = '2018-05-06'
                GROUP BY USER_B) a ) b

/SELECT SUM(number_messages) all_msg_all_contacts
回复

使用道具 举报

🔗
sagaam 2018-5-9 14:19:45 | 只看该作者
全局:
在union all以后应该还要再做一次max,这样才能找到每个user的top partener,不知道我是不是理解正确了
回复

使用道具 举报

🔗
kellynum3 2018-5-11 11:51:11 | 只看该作者
全局:
Histogram -

----table info----------. 1point3acres

create table message(
  user1_id int,
  user2_id int,
  n_msg int. Χ
);

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

select n_contact, count(user_id). .и
  from
  (select user_id, count(*) as n_contact
     from . 1point3acres
    (select user1_id as user_id from message
    union all
    select user2_id as user_id from message)a
  group by user_id)b. From 1point 3acres bbs
group by n_contact;
回复

使用道具 举报

🔗
Skylehan 2018-6-3 03:46:50 | 只看该作者
全局:
Alice007 发表于 2017-11-23 00:54
第三个sql题目:
请lz/层主们帮忙看看对不对哈
.google  и
我感觉这个写法挺好的,最后应该再group by u1吧
回复

使用道具 举报

🔗
shawnwu07 2018-6-5 09:07:18 | 只看该作者
全局:
问个简单的问题哈:. Waral dи,
楼主描述了 每行是一对unique user pair之间在某天发的消息数量,所以会存在重复记录的情况所以要用union all?不然是不是用union 就可以?
date | u1 | u2 | n_msg
Jan1  user1  user2  3
Jan1  user2  user1  3. Χ
回复

使用道具 举报

🔗
starfoe 2018-6-9 08:04:50 | 只看该作者
全局:
我感觉Possion分布。。还是指数分布呢?
回复

使用道具 举报

🔗
getdreamoffer 2018-6-13 08:53:06 | 只看该作者
全局:
"写个query得到某一天用户发消息朋友数量的distribution,就是output出两列,X: number of unique contacts for each user; Y: number of user with this many contacts。问你觉得这个distribution会长什么样子,为什么" 请问大家这个到底是什么distribution啊?
回复

使用道具 举报

🔗
fm3835 2018-6-21 00:44:46 | 只看该作者
全局:
SELECT floor(sub2.n_friends_sum/10)*10 AS bin, count(*) AS cnt
FROM
(SELECT date, sender, sum(n_friends) AS n_friends_sum
.--  FROM
    (SELECT date, u1 AS sender, COUNT(DISTINCT u2) AS n_friends
     FROM Table AS tbl1 GROUP BY u1
     UNION ALL
     SELECT date, u2 AS sender, COUNT(DISTINCT u1) AS n_friends
     FROM Table AS tbl2 GROUP BY u2) AS sub
   GROUP BY sender) AS sub2
WHERE sub2.date=CURDATE()
GROUP BY 1
ORDER BY 1
回复

使用道具 举报

🔗
sjudarn 2018-6-28 06:25:48 | 只看该作者
全局:
尝试一下,有错请帮忙支出,感激~
Q2:
SELECT date,contact_num,COUNT(user_A) AS users_num
FROM
    (
    SELECT date,user_A,COUNT(DISTINCT user_B) as contact_num
    FROM.1point3acres
        (
        SELECT * FROM table
        UNION ALL
        SELECT date,user_B,user_A,number_messages. Waral dи,
        ) w1
    WHERE number_message>0
    GROUP BY date,user_A
    ) w2
GROUP BY date,contact_num

Q3:

SELECT date,SUM(CASE WHEN rank=1 THEN 1 ELSE 0 END)/SUM(number_messages) AS top_partner_percentage
    FROM
        (
        SELECT date,user_A,number_messages,RANK() OVER (PARTITION BY date,user_A ORDER BY number_messages DESC) AS rank
            FROM.--
                (
                SELECT * FROM table
                UNION ALL
                SELECT date,user_B,user_A,number_messages.1point3acres
                ) w1
            WHERE number_messages>0
        ) W2
    GROUP BY date
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

>
快速回复 返回顶部 返回列表