ORDER BY p DESC LIMIT 1
SELECT TOP (1) [WITH TIES]
...
ORDER BY p DESC
- excel с настройками по умолчанию задолбает криками "там vba! там леший бродит! разрешить?"
- сохранять придется в xlsm
- для модификации списка придется править макрос, что не всем удобно\по плечу*
если я хочу получить разницу между записью на дату запроса и записью, сделанную 7 дней назад (по дате) что нужно поменять в этом запросе?
...
AND t2.date_added >= CURRENT_DATE - INTERVAL 7 DAY
AND t2.date_added < CURRENT_DATE - INTERVAL 6 DAY
Если в какой то день (из этого промежутка) записи не было то не выводить, ждать пока будет 7 дней подряд.
Public Type relation
pattern As String
value As String
End Type
Public relations() As relation
Public Function get_category(Target As Range) As String
Dim i As Integer
If Target.Cells.Count = 1 Then
For i = LBound(relations) To UBound(relations)
If Target.value Like relations(i).pattern Then
get_category = relations(i).value
Exit Function
End If
Next
End If
End Function
Private Sub Workbook_Open()
ReDim relations(1 To 3)
relations(1).pattern = "*футболк*"
relations(1).value = "Футболки"
relations(2).pattern = "*худи*"
relations(2).value = "Худи"
relations(3).pattern = "*свитшот*"
relations(3).value = "Свитшоты"
End Sub
B1=get_category(A1)
.Нужно выводить только тогда, когда есть запись и за сегодня и за вчера, остальные не выводить.
SELECT UserID, t1.CountMessage-t2.CountMessage
FROM daily_exp_snapshots t1
JOIN daily_exp_snapshots t2 USING (UserID)
WHERE t1.date_added >= CURRENT_DATE
AND t1.date_added < CURRENT_DATE + INTERVAL 1 DAY
AND t2.date_added >= CURRENT_DATE - INTERVAL 1 DAY
AND t2.date_added < CURRENT_DATE
SELECT VERSION();
.
А для этого существуют оконные функции. В данном конкретном случае нужно использовать оконную версию агрегатной функции AVG().
То же касается и пункта 4 - только использовать надо FIRST_VALUE()/LAST_VALUE().
PS. И я не понимаю, зачем надо было наплодить кучу отдельных SELECT, когда всё делается в одном запросе.