|
|
|
Найти суммарные продажи за день, усредненные до продаж с 1 по 4 и с 5 по 7.
|
|||
|---|---|---|---|
|
#18+
Добрый день, коллеги! Я всего лишь новичок в sql. Столкнулся с задачкой, условие которой в принципе полностью описано в заголовке. Насколько я понимаю, подобного рода задачи решаются с использование аналитических функций. Я представляю себе решение так: Код: sql 1. 2. 3. 4. 5. 6. P.S. WEEK_DAY_NUM - номер дня недели(от 1 до 7) У меня предчувствие, что кейс тут и не нужен, просто необходимо корректно задать интервал после "order by week_day_num", а вот как это сделать пока не пойму. И еще можно ли таким способом вычислять среднюю сумму? Помогите пл3 люди добрые!) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2016, 17:39 |
|
||
|
Найти суммарные продажи за день, усредненные до продаж с 1 по 4 и с 5 по 7.
|
|||
|---|---|---|---|
|
#18+
Rust_Cohle, я не понял. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2016, 17:42 |
|
||
|
Найти суммарные продажи за день, усредненные до продаж с 1 по 4 и с 5 по 7.
|
|||
|---|---|---|---|
|
#18+
Rust_CohleСтолкнулся с задачкой, условие которой в принципе полностью описано в заголовке.Это не условие, это всего лишь попытка его интерпретации в sql-код. Мы не телепаты. Помимо собственно постановки задачи не поленись привести пример исходных данных через with и пример результата ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2016, 17:43 |
|
||
|
Найти суммарные продажи за день, усредненные до продаж с 1 по 4 и с 5 по 7.
|
|||
|---|---|---|---|
|
#18+
Прошу прощения. Пишу полностью всю задачу, с исходными данными. : Задача Исходные данные: Представление с продажами V_SALE следующей структуры DAY_ID -- День продажи, тип дата SHOP -- Магазин ART_ID -- Товар TYPE-- Тип (1, 2, 3) --зависит от магазина SALE_SUM - Сумма продажи Первые три поля являются уникальным ключом Строк с нулевыми продажами в таблице нет. Представление дней недели V_DAY DAY_ID - День, тип дата WEEK_DAY_NUM - Номер для недели в числовом формате Понедельник = 1, воскресенье = 7 WEEK_ID - Номер года и недели в года в формате 201532 Задача: Необходимо по каждому магазину проанализировать продажи за 32, 33 неделю 2015 года и получить на выходе следующие поля День, когда в магазине отсутствуют продажи можно не учитывать при рассчете средней. Сделать за одно обращение к таблице V_SALE в одном запросе, без использования Common table expression (конструкция with) Список полей: Номер недели - Группируемое Магазин - Группируемое Формат - Группируемое Суммарные продажи за анализируемый период Суммарные продажи за день на магазине усредненные до продаж с понедельника по четверг Суммарные продажи за день на магазине усредненные до продаж с пятницы по воскресенье. Я не могу понять только как последние два подчеркнутых пункта вывести:( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2016, 18:04 |
|
||
|
Найти суммарные продажи за день, усредненные до продаж с 1 по 4 и с 5 по 7.
|
|||
|---|---|---|---|
|
#18+
Пока что мой запрос имеет такой вид. Но он недоработан( :запрос Код: sql 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2016, 18:15 |
|
||
|
Найти суммарные продажи за день, усредненные до продаж с 1 по 4 и с 5 по 7.
|
|||
|---|---|---|---|
|
#18+
Rust_Cohle, Если я правильно понимаю условие задачи, то аналитика тут не нужна. Хватит и группировки: Код: plsql 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2016, 18:19 |
|
||
|
Найти суммарные продажи за день, усредненные до продаж с 1 по 4 и с 5 по 7.
|
|||
|---|---|---|---|
|
#18+
Rust_Cohle, не то? Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2016, 18:27 |
|
||
|
Найти суммарные продажи за день, усредненные до продаж с 1 по 4 и с 5 по 7.
|
|||
|---|---|---|---|
|
#18+
stax.., В условии задачи "... Сделать за одно обращение к таблице V_SALE в одном запросе, без использования Common table expression (конструкция with) " ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2016, 18:33 |
|
||
|
Найти суммарные продажи за день, усредненные до продаж с 1 по 4 и с 5 по 7.
|
|||
|---|---|---|---|
|
#18+
Rust_Cohlestax.., В условии задачи "... Сделать за одно обращение к таблице V_SALE в одном запросе, без использования Common table expression (конструкция with) "Ответивший тебе и сделал одно обращение к V_SALE, в with вынес ее для декларации, только потому что автор темы поленился/оказался не способным самостоятельно привести пример исходных данных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2016, 18:38 |
|
||
|
Найти суммарные продажи за день, усредненные до продаж с 1 по 4 и с 5 по 7.
|
|||
|---|---|---|---|
|
#18+
Rust_Cohle Сделать за одно обращение к таблице V_SALE в одном запросе, без использования Common table expression (конструкция with) че за бред?? опять какой-то олдфаг-style teacher отрывается? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2016, 18:41 |
|
||
|
Найти суммарные продажи за день, усредненные до продаж с 1 по 4 и с 5 по 7.
|
|||
|---|---|---|---|
|
#18+
AmKadRust_Cohle, Если я правильно понимаю условие задачи, то аналитика тут не нужна. Хватит и группировки: Код: plsql 1. 2. 3. Я же говорю - я новичок, такими приёмами пока не владею!)Я же вроде дал примерный набор исходных данных в описании задачи. Ваше предложение через обычную группировку по сути делает то же самое, что и мой запрос. Только теперь как вывести общую сумму за две недели? По условию задачи, необходимо же произвести группировку по трем конкретным полям. Разве обычный Group by способен на такое? Заранее прошу прощение за нубские вопросы) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2016, 19:02 |
|
||
|
Найти суммарные продажи за день, усредненные до продаж с 1 по 4 и с 5 по 7.
|
|||
|---|---|---|---|
|
#18+
Rust_CohleТолько теперь как вывести общую сумму за две недели?Разве это есть в постановке задачи? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2016, 19:07 |
|
||
|
Найти суммарные продажи за день, усредненные до продаж с 1 по 4 и с 5 по 7.
|
|||
|---|---|---|---|
|
#18+
AmKad, Необходимо по каждому магазину проанализировать продажи за 32, 33 неделю 2015 года и получить на выходе следующие поля Список полей: Номер недели - Группируемое Магазин - Группируемое Формат - Группируемое Суммарные продажи за анализируемый период Суммарные продажи за день на магазине усредненные до продаж с понедельника по четверг Суммарные продажи за день на магазине усредненные до продаж с пятницы по воскресенье. Вот. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2016, 19:22 |
|
||
|
Найти суммарные продажи за день, усредненные до продаж с 1 по 4 и с 5 по 7.
|
|||
|---|---|---|---|
|
#18+
AmKadХватит и группировки: Код: plsql 1. 2. 3. Тогда уж лучше так Код: plsql 1. 2. 3. 4. может week_day_num проиндексировано.. ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2016, 19:24 |
|
||
|
Найти суммарные продажи за день, усредненные до продаж с 1 по 4 и с 5 по 7.
|
|||
|---|---|---|---|
|
#18+
--Eugene--AmKadХватит и группировки: Код: plsql 1. 2. 3. Тогда уж лучше так Код: plsql 1. 2. 3. 4. может week_day_num проиндексировано.. )Я привел только часть запроса, который не аналогичен твоему. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2016, 19:27 |
|
||
|
Найти суммарные продажи за день, усредненные до продаж с 1 по 4 и с 5 по 7.
|
|||
|---|---|---|---|
|
#18+
Rust_CohleСуммарные продажи за анализируемый периодЯ не случайно прошу (или требую) таких как ты привести пример исходных данных и желаемого результата, не только потому что мне в лом самому набивать тестовые данные, но и потому, что без этого далеко не каждому удается дать однозначную постановку. Вот например, выделенное мною предложение можно трактовать как: сумму за неделю целиком или сумму за две недели целиком. Если первое (что вероятнее) - то все в рамках группировки. Если второе, то аналитика поверх группировки. Если первое + второе, то rollup. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2016, 19:37 |
|
||
|
Найти суммарные продажи за день, усредненные до продаж с 1 по 4 и с 5 по 7.
|
|||
|---|---|---|---|
|
#18+
AmKadRust_CohleСуммарные продажи за анализируемый периодЯ не случайно прошу (или требую) таких как ты привести пример исходных данных и желаемого результата, не только потому что мне в лом самому набивать тестовые данные, но и потому, что без этого далеко не каждому удается дать однозначную постановку. Вот например, выделенное мною предложение можно трактовать как: сумму за неделю целиком или сумму за две недели целиком. Если первое (что вероятнее) - то все в рамках группировки. Если второе, то аналитика поверх группировки. Если первое + второе, то rollup. Проблема в том, что у меня нет этих данных, у меня есть только задание с листочка бумаги, которое я привел дословно, мне тоже не все однозначно понятно из условия. И предполагается что умный специалист, у которого есть опыт, без какой-либо базы возьмет в голове все это представит и выдаст решение. Лично я у себя попытался примерно задать в базе набор некоторых данных, то как я себе представляю это должно выглядеть. И сижу мучаю эту задачу. Каким образом тебе скинуть мои таблицы, я не представляю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2016, 19:48 |
|
||
|
Найти суммарные продажи за день, усредненные до продаж с 1 по 4 и с 5 по 7.
|
|||
|---|---|---|---|
|
#18+
AmKad выделенное мною предложение можно трактовать как: сумму за неделю целиком или сумму за две недели целиком. Если первое (что вероятнее) - то все в рамках группировки. Если второе, то аналитика поверх группировки. Если первое + второе, то rollup. Очевидно раз требуется анализ данных за 32,33 неделю, то и сумма требуется за обе недели. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2016, 19:54 |
|
||
|
Найти суммарные продажи за день, усредненные до продаж с 1 по 4 и с 5 по 7.
|
|||
|---|---|---|---|
|
#18+
Rust_Cohle, Отнюдь не очевидно. С учетом того, что явно перечислены группируемые поля. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2016, 20:02 |
|
||
|
Найти суммарные продажи за день, усредненные до продаж с 1 по 4 и с 5 по 7.
|
|||
|---|---|---|---|
|
#18+
Rust_Cohle, от TC хрен дождешься Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. WEEK_IDSHOPART_IDSALE_SUMSALE_SUM_1_4SALE_SUM_5_732118.648.64321224.578.6415.93321316.4716.47321424.841.0823.76321524.316.28.132198.8225.9272.9322192.6131.3261.29322261.8361.83322392.8823.7669.12322469.6638.8830.7832255454322370.9893.96277.023231107.19107.193232160.9246.44114.483233115.0261.5653.46323499.3699.363235160.6554106.65323643.14162481.143241228.9669.12159.843242160.3884.2476.143243144.72144.723244228.6976.68152.013245152.55152.55324915.3230.04685.263251205.74106.9298.823252190.08190.083253296.7399.36197.373254197.91197.91325529791.8205.23251187.46298.08889.383261235.44235.443262364.77122.04242.733263243.27243.273264365.04114.48250.563265251.1129.6121.53261459.62366.121093.53271432.81144.72288.093272288.63288.633273433.08137.16295.923274296.46152.28144.183275280.8280.83271731.78434.161297.623281333.99333.993282501.12159.84341.283283341.82174.96166.863284326.16326.163285500.85167.4333.453282003.94502.21501.743291569.16182.52386.643292387.18197.64189.543293371.52371.523294568.89190.08378.813295379.35379.353292276.1570.241705.863210687.142682.728004.42331148.621.0627.54331246.7136.729.99331338.3425.9212.42331439.4219.7119.71331531.0510.820.25331204.12114.2189.913321137.43104.7632.673322129.0671.2857.783323130.1465.0765.073324121.7756.1665.61332516289.172.9332680.4386.37294.033331219.78116.64103.143332220.86110.43110.433333212.49101.52110.973334275.4157.14118.263335228.15172.855.353331156.68658.53498.153341311.58155.79155.793342303.21146.88156.333343388.8225.18163.623344318.87240.8478.033345310.5162148.53341632.96930.69702.273351393.93192.24201.693352502.2293.22208.983353409.59308.88100.713354401.22207.36193.863355402.3201.15201.153352109.241202.85906.393361615.6361.26254.343362500.31376.92123.393363491.94252.72239.223364493.02246.51246.513365484.65237.6247.053362585.521475.011110.513371591.03444.96146.073372582.66298.08284.583373583.74291.87291.873374575.37282.96292.413375729429.3299.73373061.81747.171314.633381673.38343.44329.943382674.46337.23337.233383666.09328.32337.773384842.4497.34345.063385681.75513168.753383538.082019.331518.753391765.18382.59382.593392756.81373.68383.133393955.8565.38390.423394772.47581.04191.433395764.1388.8375.33394014.362291.491722.873318983.1610825.658157.5129670.313508.3716161.93 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2016, 20:53 |
|
||
|
Найти суммарные продажи за день, усредненные до продаж с 1 по 4 и с 5 по 7.
|
|||
|---|---|---|---|
|
#18+
ошибочка Код: plsql 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2016, 21:18 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=39357969&tid=1886915]: |
0ms |
get settings: |
4ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
169ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
36ms |
get tp. blocked users: |
1ms |
| others: | 209ms |
| total: | 442ms |

| 0 / 0 |
